Ik heb hier een pagina met wat invoerveldjes erop (niet het upload formulier, maar de pagina waar je daarna uitkomt).
Ik wil het onmogelijk maken om dit formulier te submitten met de enterknop. Dit is niet zo moeilijk, tenzij je het cross-browser wilt doen. Als je het onKeyDown event gebruikt werkt deze code in IE7, FF2 en Safari 3:
Echter, in Opera kun je het KeyDown event niet blokkeren. Ook stopPropagate en cancelBubble hebben geen effect. Je kunt wel het KeyPress event dan weer wel blokkeren in Operam maar dan geeft Firefox de waarde '0' voor de keyCode, ongeacht welke knop is ingedrukt.
Wat is nou de beste cross-browser manier om dit op te lossen? Ik wil liever niet UA sniffen om Opera te detecteren, want dat is niet altijd betrouwbaar.
Volgens mij vertoont IE6 trouwens hetzelfde gedrag als Opera, maar dat weet ik niet zeker.
Ik wil het onmogelijk maken om dit formulier te submitten met de enterknop. Dit is niet zo moeilijk, tenzij je het cross-browser wilt doen. Als je het onKeyDown event gebruikt werkt deze code in IE7, FF2 en Safari 3:
JavaScript:
1
2
3
4
5
6
7
8
| function handlefieldchange(e) { e = e || window.event; if (e.keyCode==13) { if (e.preventDefault) e.preventDefault(); else e.returnValue = false; return false; } } |
Echter, in Opera kun je het KeyDown event niet blokkeren. Ook stopPropagate en cancelBubble hebben geen effect. Je kunt wel het KeyPress event dan weer wel blokkeren in Operam maar dan geeft Firefox de waarde '0' voor de keyCode, ongeacht welke knop is ingedrukt.
Wat is nou de beste cross-browser manier om dit op te lossen? Ik wil liever niet UA sniffen om Opera te detecteren, want dat is niet altijd betrouwbaar.
Volgens mij vertoont IE6 trouwens hetzelfde gedrag als Opera, maar dat weet ik niet zeker.