Schakel formulierverzending uit via Enter-toets voor alleen _sommige velden

Ik wil het conventionele gedrag van ‘formulier verzendt wanneer ik op Enter druk’ behouden, omdat gebruikers hiermee vertrouwd zijn. Maar in een reflex drukken ze vaak op enter als ze klaar zijn met een tekstinvoervak ​​- maar voordat ze daadwerkelijk klaar zijn met het volledige formulier.

Ik wil de Enter-toets alleen kapen als de focus op een bepaalde invoerklasse ligt.

Zoek gerelateerde vragendit lijkt op wat ik zoek voor:

if (document.addEventListener) {
    document.getElementById('strip').addEventListener('keypress',HandleKeyPress,false);
} else {
    document.getElementById('strip').onkeypress = HandleKeyPress;
}

maar het gedeelte if (document.addEventListener) {is mij onbekend.


Antwoord 1, autoriteit 100%

Je kunt de enter keypressvastleggen en annuleren in die velden als volgt:

$('.noEnterSubmit').keypress(function(e){
    if ( e.which == 13 ) return false;
    //or...
    if ( e.which == 13 ) e.preventDefault();
});

Geef ze dan op je invoer een class="noEnterSubmit"🙂

Vooruitkijkend voor het geval anderen dit later vinden, in jQuery 1.4.3(nog niet uit) kun je het tot dit inkorten:

$('.noEnterSubmit').bind('keypress', false);

Antwoord 2, autoriteit 7%

<input type="text"  onkeydown="return (event.keyCode!=13);" />

Antwoord 3, autoriteit 3%

Voeg de volgende code toe aan de <Head>tag in uw HTML-code.
Het wordt ingediend bij Enter Key Voor alle velden op het formulier

<script type="text/javascript">
    function stopEnterKey(evt) {
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
    }
    document.onkeypress = stopEnterKey;
</script>

Antwoord 4

Enter alleen toestaan ​​voor een specifieke klasse (in dit voorbeeld ‘enterSubmit’):

jQuery(document).ready(function(){
    jQuery('input').keypress(function(event){
        var enterOkClass =  jQuery(this).attr('class');
        if (event.which == 13 && enterOkClass != 'enterSubmit') {
            event.preventDefault();
            return false;   
        }
    });
});

Other episodes