получить значение ввода текста при нажатии клавиши enter
Я пытаюсь это:
<input type="text" placeholder="some text" class="search" onkeydown="search()"/>
<input type="text" placeholder="some text" class="search" onkeydown="search()"/>
С некоторым javascript, чтобы проверить, нажата ли клавиша enter:
function search() {
if(event.keyCode == 13) {
alert("should get the innerHTML or text value here);
}
}
на данный момент это работает нормально, но мой вопрос, Как получить значение внутри текстового поля, я думал о передаче ссылки "это" на функцию, или если бы у них были id, тогда я мог бы использовать ID, но тогда я не вижу, как я мог бы различать, какой из них был набран, возвращая меня к той же проблеме снова...
5 ответов
попробуйте это:
<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>
<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>
JS-код
function search(ele) {
if(event.key === 'Enter') {
alert(ele.value);
}
}
$("input").on("keydown",function search(e) {
if(e.keyCode == 13) {
alert($(this).val());
}
});
пример jsFiddle:http://jsfiddle.net/NH8K2/1/
просто используя объект события
function search(e) {
e = e || window.event;
if(e.keyCode == 13) {
var elem = e.srcElement || e.target;
alert(elem.value);
}
}
что-то вроде этого (не проверял, но должно работать)
передайте это как параметр в Html:
<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>
и предупредите значение параметра, переданного в функцию поиска:
function search(e){
alert(e.value);
}
вы не должны размещать код Javascript в своем HTML, так как вы даете этим вводам класс ("Поиск"), нет причин делать это. Лучшим решением было бы сделать что-то вроде этого :
$( '.search' ).on( 'keydown', function ( evt ) {
if( evt.keyCode == 13 )
search( $( this ).val() );
} );