web-dev-qa-db-fra.com

obtenir la valeur du texte saisi lorsque vous appuyez sur la touche Entrée

J'essaye ceci:

<input type="text" placeholder="some text" class="search" onkeydown="search()"/>
<input type="text" placeholder="some text" class="search" onkeydown="search()"/>

avec du javascript pour vérifier si la touche entrée est enfoncée:

function search() {
    if(event.keyCode == 13) {
        alert("should get the innerHTML or text value here);
    }
}

cela fonctionne bien pour le moment, mais ma question était de savoir comment obtenir la valeur dans le champ de texte. Je pensais passer une référence "this" à la fonction. Sinon, je pourrais utiliser un identifiant, mais je ne le ferais pas. Voyez comment je pourrais distinguer celui qui a été tapé, ce qui me ramène au même problème ...

25
user2405469

Essaye ça:

<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>  
<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>

Code JS

function search(ele) {
    if(event.key === 'Enter') {
        alert(ele.value);        
    }
}

lien DEMO

43
ram
$("input").on("keydown",function search(e) {
    if(e.keyCode == 13) {
        alert($(this).val());
    }
});

exemple jsFiddle: http://jsfiddle.net/NH8K2/1/

8
Alexander

Juste en utilisant l'objet événement

function search(e) {
    e = e || window.event;
    if(e.keyCode == 13) {
        var elem = e.srcElement || e.target;
        alert(elem.value);
    }
}
5
epascarello

Vous ne devez pas placer de code Javascript dans votre code HTML, car vous donnez une classe à ces entrées ("recherche"), il n'y a aucune raison de le faire. Une meilleure solution serait de faire quelque chose comme ceci:

$( '.search' ).on( 'keydown', function ( evt ) {
    if( evt.keyCode == 13 )
        search( $( this ).val() ); 
} ); 
1
Gabin

Quelque chose comme ça (non testé, mais devrait fonctionner)

Passez ceci comme paramètre en HTML:

<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>

Et alertez la valeur du paramètre passé dans la fonction de recherche:

function search(e){
  alert(e.value);
}
0
Tim Sommer