我正在尝试处理一个令人沮丧的 Internet Explorer 问题,该问题阻止我将jquery-validate与jquery-placeholder结合使用。简而言之,验证不适用于带有type=password
.
更多信息在这里
我想出的一种可能的解决方法是将我的密码修改为type=text
,但这当然会以纯文本而不是 as 显示密码*******
。
有什么聪明的html
//技巧可以让字段显示为s 吗js
?css
text
password
我正在尝试处理一个令人沮丧的 Internet Explorer 问题,该问题阻止我将jquery-validate与jquery-placeholder结合使用。简而言之,验证不适用于带有type=password
.
我想出的一种可能的解决方法是将我的密码修改为type=text
,但这当然会以纯文本而不是 as 显示密码*******
。
有什么聪明的html
//技巧可以让字段显示为s 吗js
?css
text
password
因此,您可能会设置这样的东西。
具有模拟密码值的隐藏输入类型
所以我想 jquery 明智的
//everytime the password changes hidden changes with it.
$('#passwordId').change(function() {
$('#hiddenID').val() = $('#passwordId').val();
});
html:
<input type="password" id="passwordId" />
<input type="hidden" id="hiddenID" />
因此,这将允许您验证与密码相同的隐藏输入。
我能想到的第一个“hack”是将“data-changed”属性添加到 input="password" 字段,然后将“onchange”事件附加到设置“data-changed”== true 的密码字段,这样您就可以验证值“密码”是否实际上是由用户输入的(data-changed == true),或者它是否由占位符插件本身提交。
当这些答案出现时,我有了自己的顿悟。乍一看,它似乎有效。我会查看其他答案并接受看起来效果最好并且最不“hacky”的任何方法。
当我发现问题仅在字段为空(仍然有占位符文本)时才存在时,我提出了这种方法,因此,仅不会通过“必需”验证。我的解决方法是将其更改type=password
为输入内容的时间。
我的做法:
$('#password, #password_confirm').keyup(function(){
if ($(this).attr('type') === 'text') {
if ($(this).val().length > 0) {
$(this).attr('type', 'password');
}
} else if ($(this).val() == "") {
$(this).attr('type', 'text');
}
});