更改为输入密码onblur

时间:2012-10-24 11:35:09

标签: html forms

我尝试使用相同输入中的信息执行表单。它在所有输入中都能正常工作,但在密码中,如果用户引入密码时可以更改为点数会更好。我希望它是类型文本,并且只有在用户引入密码时才更改为键入密码。问题出在最后一行代码中:

我在这里生活:http://jsfiddle.net/Nt9gx/

<form> 

<input type="text" name="name" value="name" 
    onfocus="if (this.value=='name') this.value = '';" 
    onblur="if (this.value=='') this.value = 'name';"  
/>

<input type="text" name="password" value="password"   
    onfocus="if (this.value=='password') this.value = '' type = password;" 
    onblur="if (this.value=='') this.value = 'password';"
           "if (this.value!=''|| 'password') type = password ;" 
/>

</form>

3 个答案:

答案 0 :(得分:3)

使用HTML5占位符

要完成工作,您应该只使用HTML5 placeholder - 属性,如下所示:

<input type="password" name="password" placeholder="Password">

这样:

  • 显示占位符,但未插入任何文本或是否再次删除所有文本
  • 它甚至在密码字段上显示文本
  • 无需使用JavaScript

顺便说一下:

  • 您在最后一次输入中使用了两次onblur,这只会发生一次
  • 最后一行在语法上是错误的,因为您需要在'(单引号)中转义单词密码而不是"(双引号)< / del>(问题已更新)
  • 最后一行使用password
  • 中名为|| password)的未定义变量
  • type="password"用于处理密码的输入字段,因为输入将是“不可见的”

注意:

如果您仍想使用JavaScript,只需更新type="text" - 属性,就必须在焦点和模糊事件中将输入从type="password"更改为type

这是你可以做到的:

<input type="text" name="password" value="password"   
    onfocus="if (this.value == 'password') { this.value = '', this.setAttribute('type','password'); }" 
    onblur="if (this.value == '') { this.value = 'password', this.setAttribute('type','text'); }"
>

演示:http://jsfiddle.net/2Ps8N/

答案 1 :(得分:0)

<input type="text" name="name" value="name" 
    onfocus="if (this.value=='name') this.value = '';" 
    onblur="if (this.value=='') this.value = 'name';"  
/>

<input type="password" name="password" value="password"   
    onfocus="if (this.value=='password') this.value = '';" 
    onblur="if (this.value=='') this.value = 'password';"
    onblur="if (this.value!=''|| password) value = 'password';" 
/>
你输了双引号!

答案 2 :(得分:0)

您可以像这样更改密码输入:

<input type="text" name="password" value="password" type="password" 
    onfocus="if (this.value=='password') this.value = '';" 
    onblur="if (this.value=='') this.value = 'password';"
/>

Yoc可以在if (this.value=='')中添加更多条件,但只能在此onblur中执行此操作而不会写入另一个onblur

您在最后一行有this.value = "password"这是错误的,您必须使用'password'代替"password"

在最后一个if条件中,您具有在使用之前未定义的参数password。你应该在此之前定义var password,否则你应该改变这个条件