21. oktober 2009 - 16:26Der er
7 kommentarer og 1 løsning
Delete row giver problemer
Hej Eksperter
Jeg har i en formular lavet en funktion til at tilføje rækker. Jeg har prøvet at lave en der tilsvarende kan slette rækker. Jeg ønsker dog ikke at man kan slette alle rækker så har prøvet at tilføje en betingelse om at der skal være to rækker i tabellen. Det vil sige man kan slette 4 og 3 række men ikke 2 og 1.
Javascript funktionen jeg bruger ser sådan ud: function deleteRow(r) { var rowIndex=r.parentNode.parentNode.rowIndex; var i=document.getElementById('tab').rows.length if (i>2) { document.getElementById('tab').deleteRow(rowIndex); } else { alert("There must be a investor"); } }
HTML Kanp der aktiverer funktionen: <input type="image" src="../img/delete.png"onclick="deleteRow(this)" alt="Delete">
Mit problem opstår når man prøver at slette række 1 eller 2. Så modtager man alerten, men af en eller anden grund tror jeg også den submitter eller refresher siden, det vil sige, hvis der var tastet noget ind i nogen af felterne på siden, går det tabt. Det er selvfølgelig ikke optimalt. Kan også se at den i Explore viser en fejl, men kan ikke nå at trykke på ikonet i den nederste bar så jeg kan se fejlmeddelsen.
Håber der nogen der kan hjælpe mig på dette nok meget simple problem.
Prøv at læse dit eget spørgsmål, du roder rundt i det. Når du starter med at snakke om rækker i en form, og i øvrigt kun poster dit JavaScript og ikke det stykke HTML som influeres, så giver de fleste svarere op på forhånd.
Jeg tror nok at det er lykkedes mig at forstå dit spørgsmål. Min hjælp er begrænset eftersom jeg ikke kan afprøve din kode. Så indtil videre er alt jeg kan sige at input type=image er implicit en submit knap, hvis du bare vil have et billede som man kan klikke på for at køre et stykke JavaScript kan det gøres således:
Hej Kan godt se at jeg burde til en anden gang have sendt eksemplet, så man selv kunne teste det på sin computer. Men du løste faktisk mit problem, selv om spørgsmålet var lidt kringlet.
Kunne godt tænke mig at forstå problemet helt, da jeg er ny inden for JavaScript.
Fordi jeg har lavet det som en knap(som billede) istedet som en del af formularen har den åbenbart fejlede, og ved at lave det om til et billede virkede det. Kan grunden til fejlen være fordi den på en eller anden måde ikke har nogen funktion, som fx rest eller submit at den så fejler, og ved at img ikke er et element der indgår i formularen, at den derfor ikke har nogen virkning på formularen, at det virker.
Det er HTML forms som er lidt skumle. En input med type image ER en submitknap, og man bør ikke forsøge at bruge den til noget som helst andet. Det der sker når man trykker på den er altså at den angivne JavaScript funktion bliver kørt, hvorefter formen submittes.
Løste jeg også den første del af dit spørgsmål? Med de to rækker som ikke kan slettes. For det problem kan jeg ikke sådan lige finde en forklaring på.
Det løste du. Da man trykkede "delete" på funktionen der var en img-knap, har den prøve at submitte og da jeg har valideret ved at bruge funktionen i form "onSubmit" har den åbenbart gjort det og fejlet af en eller anden grund og opdateret siden.
Det irriterer mig lidt at jeg ikke har mulighed for at se hvad fejlen af, da den opdatere siden og derved forsvinder fejlmeddelsen i Internet Explore. Det sker så hurtigt at jeg ikke kan nå at trykke på det lille advarselstegn den viser nede i venstre hjørne. (har du et tip til at se hvad JavaScript fejlen er?, Bruger tomcat som server og der er en log, som jeg bruger til at se Java/JSP fejl i).
Men jeg er blevet meget klogere og ved bare at fremover skal jeg ikke bruge img i stedet for bottem når jeg skal eksekverer en JavaScript funktion.
I Firefox har du en fejlkonsol (som i øvrigt ved almindelig browsing bliver fyldt til randen af alt det slamkode som findes på nettet), den finder JavaScript fejl, ugyldige CSS værdier og meget andet.
Nu vi er i gang så kan jeg også anbefale Firebug til Firefox, det kan en hel masse nifty webudviklerting.
Okay, jeg har faktisk en købeudgave at Firefox, så den applikation må også være i den udgave jeg bruger. Mange tak for den ekstra hjælp, har hjulpet mig rigtig meget.
Ja, det er en firefox udgave med noget script, css og en masse funktioner som jeg ikke kender særlig godt endnu. Men kan godt være den er forældet, men har desværre ikke andre muligheder en at bruge det, pga. en MEGET streng politik om software på vores arbejdscomputere.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.