我已经使用jQuery Validation插件整理了一个表单,并且所有输入都可以正常工作验证和错误消息 - 复选框除外.我有两个复选框问题.
第一个是Validation插件API似乎不处理分组上下文中的复选框(我使用字段集进行分组).在这里找到了几个解决这个问题的方法,包括参考Rebecca Murphey关于使用自定义方法和类的更一般情况的帖子.适应这种情况:
jQuery.validator.addMethod('required_group', function(val, el) {
var fieldParent = $(el).closest('fieldset');
return fieldParent.find('.required_group:checked').length;
});
jQuery.validator.addClassRules('required_group', {
'required_group': true
});
jQuery.validator.messages.required_group = 'Please check at least one box.';
Run Code Online (Sandbox Code Playgroud)
这种方法有效,但会在每个复选框上生成错误消息,并且仅在单击每个框时将其删除.这对用户来说是不可接受的情况,用户只能通过点击误报来消除它们.理想情况下,我猜需要的是在显示之前阻止或消除额外消息,并使用errorPlacement在父字段集中显示单个错误消息,然后通过单击任何复选框将其删除.理想情况下,也许它们都会显示,但事件处理程序可以通过点击关闭整套冗余消息,这就是tvanfosson提供的这种方法.(这里有另一个定制的方法,但我无法让它工作.)我想我还应该注意这个表单要求复选框有不同的名称.
我的第二个问题是,表单中带有复选框的其中一个字段集还包含一个外部复选框下的复选框的嵌套字段集.因此,除了第一级单框检查要求之外,如果选中包含第二级复选框的特定复选框,则必须至少检查一个第二级框.不确定正确的方法; 我猜测需要发生什么(遵循上述方案)是触发器复选框将使用toggleClass向子域中的所有复选框添加/删除'required_group'类,然后(希望)表现与父项相同领域:
$("#triggerCheckbox").click(function () {
$(this).find(":checkbox").toggleClass("required_group");
});
Run Code Online (Sandbox Code Playgroud)
任何建议或想法欢迎.我已经远远超出了我在这一方面有限的jQuery技能,并且很高兴听到我错过了简单,优雅和/或明显的方法来做到这一点!
jQuery 验证的第一天,但不是 jQuery 的第一天。很简单的问题:我有三个文本输入:姓名、电话和电子邮件。我想要求姓名(没有汗水)和电话或电子邮件,并确保输入在电话或电子邮件中有效。我试过这个:
$(document).ready(function() {
$("#contactForm").validate({
debug:true,
rules: {
name: {
required: true
},
email: {
email:true,
required: function(element){
!$("#phone").valid();
}
},
phone: {
phoneUS: true,
required: function(element){
!$("#email").valid();
}
}
},
messages: {
name: "Please specify your name",
email: {
required: "Please enter a valid email"
},
phone: "Please enter a 10 digit phone number"
}
});
Run Code Online (Sandbox Code Playgroud)
});
但它失败了,因为每个有效性检查都会调用另一个,无限递归并使浏览器崩溃。
必须有一些简单的方法来做到这一点,但我已经花了将近两个小时,它逃脱了我:(
我正在使用jQuery Validate,并希望每当其中一个字段发生更改时(或者可能,只要其中一个字段成功验证)就重新验证一组字段.到目前为止,我的尝试只会产生无限循环
这可能,或插件设计是否排除它?
(具体来说,我有一个方法需要填写Y组中的至少X个,并且一旦这是真的,我希望所有这些字段重新验证.目前我正在清除他们的错误消息使用我自己的代码,但这是一个黑客 - 它还隐藏了不相关的验证问题,直到重新提交表单.)
如何验证动态创建的文本输入?
我有一个"添加更多"链接,可以创建新链接,以及一个删除它们的链接.每个人都有一个独特的身份证.
此外,必须至少填写两个文本框.
我正处于构建网站的最后阶段,还剩下一个关键任务:设置一些表单验证,阻止用户提交空白搜索.
我知道以下帖子,但是发现如何将其用于工作,以及如何将其用于下拉列表(jQuery Validate - 要求填充组中的至少一个字段)
关于我如何做到这一点的任何想法,或任何可能有用的指南指南,都将受到大力赞赏?