Jeg har en form som bruges i en ajaxsammenhæng, og der vil jeg gerne forhindre at formen submittes når man trykker enter i et textfield. Jeg har søgt og fundet en del funktioner, og jeg kan godt forhindre enter all-in-all, men jeg vil have enter til at udføre anden funktion end submit.
Jeg kan f.eks. forhindre submit med dette:
document.onkeypress = function(e) { e = e || window.event; if (typeof e != 'undefined') { var tgt = e.target || e.srcElement; if (typeof tgt != 'undefined' && /input/i.test(tgt.nodeName)) return (typeof e.keyCode != 'undefined') ? e.keyCode != 13 : true; } }
Den skal så udføre en funktion, og det skal kun gælde for et enkelt textfield
Ville være glad hvis der var nogen der kunne komme med foreslag.
Det er en rimelig stor formular, hvor et par af felterne har autocomplete, det er det dette skal anvendes til. Jeg vil gerne kunne submitte formen når den er udfyldt :)
Derudover bør du nok gøre som Google og tjekke hvert sekund ... ikke hvergang et tegn skrives. Det begrænser det overarbejde en hurtigskriver let sender serveren ud i ;o)
Desværre fungerer de ikke rigtigt. erikjacobsens vil ikke submitte overhovedet. Løsningen fra olebole fungerer submitter stadig når man trykker enter i et textinput.
Ang. belastning af serveren, så bliver det ikke et issue her, da formen kun skal bruges et par gange om dagen.
Sorry erik, kan godt se det ikke var så godt beskrevet.
Jeg har en formular med rigtig mange felter, nogle af disse felter har jeg lavet autocomplete på. Jeg kunne godt tænke mig at man skal kunne vælge et autocompleteresultat ved trykke enter. Problemet er at når jeg trykker enter, submittes formen. Formen skal altså ikke submittes når man trykker enter, men der skal senere være mulighed for at submitte hele formen ved at klikke på submit knappen.
Hele autocompletekoden fylder en del, så poster et minimalt eksempel her. Vil bare have den til at alerte "wee" når jeg trykker enter, formen skal ikke submittes før man klikker på submit.
<script type="text/css"> function doStuff(e){ if (window.event){ keycode = window.event.keyCode; } else if (e){ keycode = e.which; } if (keycode == 13){ alert("wee"); } } </script>
Ja, det var jo bare et hurtigt hack ;) Så er det vel nemmest at smide <button> udenfor din form, og fra den sige submit til formen. Problemet er eksistensen af en submit-agtig tingest i formen.
Ah ja, den mulighed havde jeg slet ikke overvejet. Det fungerer jo som det skal når jeg fjerner submitknappen fra samme form :) Smid et svar, så falder der point af :)
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.