【发布时间】:2013-10-25 09:06:59
【问题描述】:
我正在使用 jQuery、jQuery Mobile 和 jQuery Validation 插件
我有一个“密码”字段和一个“记住密码”复选框。
我希望仅在验证密码字段后启用该复选框。
这是 HTML 中的两个字段
<input type="password" name="password" class="submit required" minlength="6" />
<input type="checkbox" name="rememberpassword" value="remember" />
要启用或禁用复选框,我使用 jQuery Mobile 命令
$('[name=rememberpassword]').checkboxradio( "enable" ); and
$('[name=rememberpassword]').checkboxradio( "disble" );
我不知道可以在验证规则中的何处添加此命令。
我尝试在密码字段的验证规则中添加启用/禁用命令,如下所示:
$(form).validate({
rules: {
password: {
required: {
depends: function(element) {
console.log('In the password depends');
if (!$(element).hasClass('error')) {
$('[name=rememberpassword]').checkboxradio("enable");
} else {
$('[name=rememberpassword]').checkboxradio("disable");
}
return true;
}
}
}
}
});
这种方法的问题是,有效和错误类被添加到元素中,仅在密码字段中的第一个数据输入后才进行验证,因此复选框仍然有效。
我也尝试使用 .valid() 方法验证表单或密码字段,但只要该字段未填充任何内容,这似乎没有任何作用。
我尝试做同样的事情,但在密码上使用.valid() 方法而不是测试错误类的存在,但这会导致递归,直到返回错误。
我没有找到一种方法来检查不会触发完整验证和后续递归的字段的有效性。
任何帮助将不胜感激。
【问题讨论】:
-
请显示所有尝试。我很想看看您在使用
.valid()时是如何尝试的。 -
嗨 Sparky,对不起,我用各种扭曲的逻辑做了很多尝试,以至于我真的不记得我用 .valid() 函数尝试了什么,对不起... :-(
标签: jquery jquery-mobile jquery-validate