2013-11-29 2 views
0

У меня есть input поле, которое будет кэшировать это value атрибут, пожалуйста, посмотрите на пример ниже:Значение возвращает пустое поле ввода?

$("#signUpEmail").keyup(function(e) { 
    console.log(e.target.value); //work 
    console.log($(this).attr("value")); //doesn't work 
}); 

Если зарегистрировать их как в консоли, e.target.value возвратит мое input поле, но не второй. Может объяснить, почему это так?

+0

Возможный дубликат [Разница между Element.value и Element.getAttribute («значение»)] (http://stackoverflow.com/questions/11973678/difference-between-element-value-and-element-getattributevalue) –

+0

сначала измените $ ("# signUpEmail) на $ (" # signUpEmail "). – awsumnik

+0

затем используйте' $ ("# signUpEmail"). keyup (function() {var value = $ (this) .val(); alert (значение);}) ' – awsumnik

ответ

2

Может объяснить, почему это так?

e.target.value получает доступ к свойству DOM, который всегда представляет текущее значение поля ввода.

С другой стороны, $(this).attr("value") подходит к атрибуту HTML, который является значением ввода, как указано в разметке HTML. Он не обновляется, когда значение изменяется пользователем.

Вы можете использовать $(this).prop('value') для доступа к собственности через jQuery, но, как уже упоминалось, .val - это обычный способ сделать это.

0

Правильный синтаксис JQuery является

$(this).val() 
1

В JQuery, чтобы получить текст использования входного поля:

$(this).val(); 

и для этикеток:

$(this).text(); 
2
$(this).attr("value"); //can access only default value 

Например,

<input type="text" id="signUpEmail" value="email"/> 
$(this).attr("value"); //returns email 

Вместо этого используйте prop()

$(this).prop("value"); //for getting dynamic values 

Например:

<input type="text" id="signUpEmail" /> 
$(this).prop("value"); //returns whatever you press 
$(this).attr("value"); //returns undefined 
1

Вы выборки значение атрибута, который представляет собой значение по умолчанию не текущая значение ,

Используйте метод val() вместо attr().

$(this).val() 
Смежные вопросы