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