In een tool die ik bouw voor een klant wil ik voorkomen dat een formulier wordt gesubmit door middel van de Enter-toets in een text-veld.
In IE6 heb ik dit werkend door middel van
checkForm() controleert de keyCode van het event en returnt false als dat 13 is in een bepaald text-veld. Het target vang ik netjes op met een script van Quirksmode.
Als ik in regel 8 een alert zet, dan zie ik dat FF die regel gewoon doorloopt. Hij geeft wel een false voor de keyCode, maar hij stopt het submitten van het form niet.
Ik dacht vervolgens dat ik dit op kon lossen door ook nog dit toe te voegen (ook weer met dank aan Quirksmode).
Maar ook dit werkt niet.
Blijkbaar begrijp ik iets niet helemaal goed. Iemand een tip (of zelfs oplossing
)?
In IE6 heb ik dit werkend door middel van
HTML:
1
| <body onkeydown="return checkForm(event)"> |
checkForm() controleert de keyCode van het event en returnt false als dat 13 is in een bepaald text-veld. Het target vang ik netjes op met een script van Quirksmode.
JavaScript:
1
2
3
4
5
6
7
8
9
10
| function checkForm(e){ var targ; if (!e){var e = window.event;} if (e.target){targ = e.target;} // standard else if (e.srcElement){targ = e.srcElement;} // Windows if (targ.nodeType == 3){targ = targ.parentNode;} // Safari bug if(e.keyCode==13 && targ.id=="mag_niet"){return false;} else {return true;} } |
Als ik in regel 8 een alert zet, dan zie ik dat FF die regel gewoon doorloopt. Hij geeft wel een false voor de keyCode, maar hij stopt het submitten van het form niet.
Ik dacht vervolgens dat ik dit op kon lossen door ook nog dit toe te voegen (ook weer met dank aan Quirksmode).
JavaScript:
1
2
| e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); |
Maar ook dit werkt niet.
Blijkbaar begrijp ik iets niet helemaal goed. Iemand een tip (of zelfs oplossing