2012-04-25 2 views
2

У меня есть обработчики onfocus/onblur для поля, которое очищает содержимое по умолчанию при сфокусировке, но только если значение равно значению по умолчанию (чтобы не удалять пользовательский ввод) ,Невозможно изменить атрибут defaultValue ввода с помощью jQuery

Поле также может переключаться между входами. Поэтому вместо того, чтобы принимать имя пользователя, пользователь может нажать кнопку и принять адрес электронной почты. Для этого потребуется другое значение по умолчанию, например «введите адрес электронной почты». Реальный атрибут свойства defaultValue должен быть изменен, чтобы мои фокусными/обработчики нерезкости работать должным образом, используя что-то вроде этого:

$('input#ident-field').prop('defaultValue', 'enter your email address'); 

Это, кажется, не работает, потому что если вы сосредоточитесь на поле, когда он попросит адрес электронной почты он не очищает его.

+0

прочитал о [ '.prop()'] (HTTP: //api.jquery.com/prop/): он должен использоваться при настройке selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked или defaultSelected. – diEcho

+0

Значит, не defaultValue? В любом случае, я пробовал .attr() и .prop(), и ни один из них не работает. – Matt

+0

см. Мой ответ; если все же вы хотите пойти с jQuery, тогда используйте ['.data()'] (http://api.jquery.com/data/) вместо – diEcho

ответ

3

Использование Шоудом HTML 5 атрибут placeholder

<input type="text" placeholder="Enter Your email address"/> 
+0

Это круто! – Matt

+2

Вы также захотите добавить https://github.com/mathiasbynens/jquery-placeholder, чтобы он работал в старых браузерах. – ThiefMaster

0

Вы можете сделать это с использованием фокуса и размытости функций:

$('input#ident-field').val("enter your email address"); 
// or $('input#ident-field').prop('defaultValue', 'enter your email address'); 
$('input#ident-field').focus(function(){ 
    $(this).val(""); 
}); 
$('input#ident-field').blur(function(){ 
    if($(this).val().trim() == "") 
    { 
     $(this).val("enter your email address"); 
    } 
}); 
Смежные вопросы