我目前正在结合使用Mathias Bynens的占位符多边形填充和jquery.validate插件(v1.11.1),并且在Internet 9中遇到了一个令人沮丧的错误。
如果type="password"
字段定义了非空的placeholder
属性,则无法获得所需的字段验证。一旦输入了一个值,占位符文本就消失了,剩下的验证就能正常工作了。
JS
$('input').placeholder(); // init placeholder plugin
signupFormValidator = $('form').validate(); // init validation
<form>
<input class="required" type="text" name="test" id="test" placeholder="test"><br>
<input class="required" type="password" name="password" id="password" placeholder="password"><br>
<input class="required" type="password" name="confirm" id="confirm" placeholder="confirm"><br>
<input type="submit">
</form>
发布于 2013-11-25 11:25:21
编辑:这个补丁在火狐中引入了bug。请参阅下面的评论。
为了解决这个问题,我最终使用了一些我自己烤的相当讨厌的jQuery:
$('#password, #confirm').keyup(function() {
var $input = $(this);
if ($input.attr('type') === 'text') {
if ($input.val().length > 0) {
$input.attr('type', 'password');
}
} else if ($input.val() === "") {
$input.attr('type', 'text');
}
});
这样做的目的是将字段type
设置为"text“而不是"password",从而有效地消除了这个讨厌的占位符问题。
小问题:密码的第一个字符在开始输入文本时显示为纯文本。
https://stackoverflow.com/questions/17117971
复制