0

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

我在这里生活: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>
4

3 回答 3

3

使用 HTML5 占位符

要完成这项工作,您应该简单地使用 HTML5placeholder属性,如下所示:

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

因为这将:

  • 显示占位符,而没有插入文本或再次删除所有文本
  • 它甚至在密码字段上也显示文本
  • 无需使用 JavaScript

顺便一提:

  • 您在最后一个输入中使用了两次onblur,这应该只发生一次
  • 最后一行在语法上是错误的,因为您需要在(单引号)而不是(双引号)中转义单词密码'"(问题已更新)
  • 最后一行使用了一个未定义的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/ ​</p>

于 2012-10-24T11:39:30.390 回答
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';" 
/>

你输入了一个双引号!

于 2012-10-24T11:38:20.903 回答
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在此之前定义 if 或者您应该更改此条件

于 2012-10-24T11:43:40.320 回答