我有一个具有多个地址字段的表单。我想只允许在一个字段中输入,如果前面的字段已填写。我正在使用jquery验证,并且希望继续这样做。这个想法是,虽然这些领域实际上都不需要,除了第一个领域,你不能在其余领域留下空白。因此,如果字段3为空,则字段4中不能有数据。一种方法可能是仅在数据输入到前一个字段时启用字段,但不知道在此情况下如何执行该操作。jQuery验证插件,如果另一个为空,则一个字段必须为空
回答
继续我上面的评论。
有了基本的jQuery选择,你可以选择“前一个”使用.prev()运行功能元素。
在伪代码方面,所以你要确保你是你可以做这样的事情
if (anAddressTextBox.prev().val() != '') { // ps: again, this is pseudo-code
// allow current text object
}
您可能也想看看.closest()和.siblings()
验证上述部分与匹配的类名总是在你的地址范围内。 (即:不检查的另一个随机领域是不是一个地址文本框)
添加一些你的HTML/JS/jQuery代码那么那么社会将能够提供更好的解决方案:)
这与jQuery Validate插件有什么关系? – Sparky 2013-03-24 16:08:49
你的解释是有点不清楚。我从来没有听说过任何人想让场地保持空虚......要么是required
要么是他们的optional
。
这是一个两部分答案:
1)演示如何使用depends
选项与:filled
和:blank
自定义选择一起。因此规则的应用可能取决于另一个字段是填充还是留空。
2)展示了如何编写如果该字段没有留空,让一个错误的自定义规则。
末最后的jsfiddle结合了这两个。
You can use a depends
function使required
规则依赖于另一个领域。
在这个例子中,所有的字段都开始“可选”。但是,每一个都取决于以前。如果field #1
被填满,然后field #2
成为required
等You could also use the :blank
custom selector in place of the :filled
to check the opposite。
你可以改变周围的这个以适应几乎任何情况。
DEMO:http://jsfiddle.net/Rvhmd/
jQuery的:
$(document).ready(function() {
$('#myform').validate({ // initialize the plugin
rules: {
field2: {
required: {
depends: function (element) {
return $("#field1").is(":filled");
}
}
},
field3: {
required: {
depends: function (element) {
return $("#field2").is(":filled");
}
}
},
field4: {
required: {
depends: function (element) {
return $("#field3").is(":filled");
}
}
}
}
});
});
HTML:
<form id="myform">
<input type="text" name="field1" id="field1" />
<input type="text" name="field2" id="field2" />
<input type="text" name="field3" id="field3" />
<input type="text" name="field4" id="field4" />
<input type="submit" />
</form>
为了向OP提供他所要求的内容,这里有一个自定义的方法/规则,称为empty
,如果该字段不为空,将会给出错误。
$(document).ready(function() {
$.validator.addMethod('empty', function(value, element) {
return (value === '');
}, "This field must remain empty!");
$('#myform').validate({ // initialize the plugin
rules: {
field: {
empty: true // error if field is not empty
}
}
});
});
工作演示:http://jsfiddle.net/4C2U3/
你可以用上面的depends
选项来实现任何你想结合这个习俗empty
规则。
rules: {
field: {
empty: {
depends: function (element) {
return $("#other_field").is(":blank");
}
}
}
}
这是最接近我认为OP希望:
正待回答您的上述要求,通过使用最大长度= 0的验证,我们能够有一个有效的但是必需的空字段。它来自于JQuery验证支持论坛:
rules: {
"fieldName" : {maxlength:0}
}
当然,你将需要修改的休息,但是这是一个简单的方法让我们有一个字段是有效的,只有当它是空白(又名最大长度= 0 )
- 1. 当一个字段有值时,另一个字段必须为空
- 2. 验证空白字段后检查另一个验证规则
- 3. Laravel验证规则,如果字段空,需要另一个字段
- 4. 插入一个空值到SQL如果表单字段为空
- 5. 如果字段为空,则需要Jquery验证下拉列表
- 6. SQL使用某个字段,如果另一个为空
- 7. 在jQuery验证插件,如何验证必填字段为空,(没有语法验证)?
- 8. api.constrain为条件,如果其中一个字段为空
- 9. jQuery验证插件:如何验证空字段?
- 10. 一个衬里如果字符串不为空,否则空
- 11. c# - 数据表如果一个字段为空设置另一个值
- 12. MySQL从另一个表中插入字段不为空
- 13. 验证多个空字段
- 14. jQuery验证插件:在空字段上强制验证
- 15. jQuery验证,出两个空白领域,至少有一个字段必须填写或两者
- 16. jQuery从一个或另一个部分验证两个字段
- 17. jQuery验证只验证一个字段
- 18. MySQL - 如果列为空,则从另一个表中检索值
- 19. 条件验证,如果输入字段为空或不是?
- 20. 至少有一个字段必须填写,cakephp验证
- 21. 验证一个必填字段
- 22. 如果第一个$ _GET字段为空,但第二个值为空,则回显以填写缺失值
- 23. 如果密码字段为空,则为jquery
- 24. jQuery验证插件结果为空AJAX POST
- 25. 两个字段的jQuery验证插件
- 26. 登录表单的Javascript验证 - 字段必须不为空并且包含“\”
- 27. 公式验证一个字段对另一个字段
- 28. jQuery验证插件:在所有必填字段上应用一条规则
- 29. Jquery验证插件 - 如何为每个验证添加一个函数
- 30. 如果查询集为空,则添加一个字典
如果您发布了一些您正在尝试的实际代码,它将会大有帮助。很难想象它。 – fmendez 2013-03-24 15:40:57
我强烈建议做验证服务器端以及 – 2013-03-24 15:41:07