我正在尝试将可见文本添加到“输入密码”的密码字段中,然后单击文本清除并键入点.我有两个输入类型= text和另一个密码.密码输入在开始时隐藏,但在使用“输入密码”指令单击输入后出现.
它执行此操作http://mudge.github.com/jquery_example/,但我正在尝试将其用于密码字段.
HTML
<input type="text" id="password_instructions" /> <input type="password" id="password" />
Jquery
var $password = $('#password'); $password.hide(); //hide input with type=password $("#password_instructions").click(function() { $( this ).hide(); $('#password').show(); $('#password').focus(); if ($password.val().length === 0) { //if password field is empty $password.focusout(function() { //when clicking outside empty password input $( this ).hide(); $('#password_default_value').show(); $('#password_instructions').default_value('Enter a password'); //will clear on click }); } });
什么行不通:
当您填写密码输入(出现点)并单击时,隐藏输入并显示#password_instruction输入.所以它不尊重if empty语句.出于某种原因,即使我输入了密码,它也会将输入视为空.
我在这做错了什么?
解决方法
在调用focus()之后,您似乎期待某种“暂停”,并且只有当最终用户以某种方式输入密码时才会执行JS代码的残余.
这不是真的.该功能一次完全执行.
您需要移动以下部分
if ($password.val().length === 0) { //if password field is empty $password.focusout(function() { //when clicking outside password input $(this).hide(); $('#password_default_value').show(); $('#password_instructions').default_value('Enter a password'); //will clear on click }); }
$('#password').focusout(function() { if ($(this).val().length === 0) { //if password field is empty $(this).hide(); $('#password_default_value').show(); $('#password_instructions').default_value('Enter a password'); //will clear on click } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。