aasahMedlem sedan mars 20034 471 inlägg
Min form innehåller två olika submittknappar. Jag vill att samma JS-funktion ska ta hand om resultatet, oavsett vald knapp, men funktionen måste veta vilken submit som tryckts in. Hur fixar jag det?
Formen ser just nu ut så här:
<form id="jsformen" onsubmit="return addWord(this);">
<table><tr><td id="wordBoxHeader" colspan="3"><center>You clicked on:</center></td></tr>
<tr><th>Pos</th><th>The Word</th><th>Direction</th></tr>
<tr><td id="wordBoxAcrossPos">-</td>
<td><input type="text" id="wordBoxAcrossWord" disabled></td>
<td><input type="submit" id="wordBoxAcrossSubmit" value="Add Across!" disabled>
<input type="hidden" id="wordBoxAcrossStart" value=""></td></tr>
<tr><td id="wordBoxDownPos">-</td>
<td><input type="text" id="wordBoxDownWord" disabled></td>
<td><input type="submit" id="wordBoxDownSubmit" value="Add Down!" disabled>
<input type="hidden" id="wordBoxDownStart" value=""></td></tr>
</table></form>
Vore det bättre att ge submitknapparna samma id och olika värden?
- Vad gör this i onSubmit-anropet? Alltså vad refererar den till? Formen? Submittknappen? Varför behövs den? (Hittade skrivsättet via sökning här.)
Peter SMedlem sedan dec. 20025 483 inlägg
- Använd type="button" om addWord() alltid returnerar falskt (vilket jag antar att den gör). Sedan:
onsubmit="return false"
<input type="button" onclick="addWord(this.form,[b]'id för knappen'[/b])"
function addWord(x,y){
// y = nedtryckta knappens id
...
}
- this refererar till formuläret i det här fallet. Det gör att du med x ovan har ett bekvämt sätt att accessa dess medlemmar på. :)
aasahMedlem sedan mars 20034 471 inlägg Ah! Tack för förklaringen! :)
Peter S skrev:
- Använd type="button" om addWord() alltid returnerar falskt (vilket jag antar att den gör).
:q Varför behöver den returnera något? Jag vill bara att ordet i input ska hackas up i bokstäver och föras in i korsordet (vilket addWord ska fixa) inte ladda om sidan eller något... Vad innebär return false i det här fallet?
Sedan:
onsubmit="return false"
:q Var ska det stå? I Formtaggen?
Peter SMedlem sedan dec. 20025 483 inlägg
aasah skrev:
Ah! Tack för förklaringen! :)
:q Varför behöver den returnera något? Jag vill bara att ordet i input ska hackas up i bokstäver och föras in i korsordet (vilket addWord ska fixa) inte ladda om sidan eller något...
Om du har en submit-knapp kommer formuläret att postas, såvida du inte har return false i onsubmit.
aasah skrev:
Vad innebär return false i det här fallet?
:q Var ska det stå? I Formtaggen?
Ersätter du submit-knapparna med type="button"-varianter, behöver du egentligen inte ovanstående. Men, ja, det skall stå i <form>-taggen.
aasahMedlem sedan mars 20034 471 inlägg Tackar! :e Egentligen borde båda svaren accepterats, men det går ju inte...