jQuery Validate – 从select中获取值并基于值make make input required字段

我有一个带有选项的表单,其中包含3个选项“空白”,“是”和“否”。 我也有一个文本输入,这是这种情况的一部分。

我的HTML如下(Extract):

Yes No

jQueryvalidation代码(提取):

 $("#online-application").validate({ rules: { medical: { required: true }, medcon: { required: $("#medical").val() == "medyes" }, }, messages: { medical: "Please select an option.", medicaltext: "Please enter your medical condition.", }, 

我的问题是,如何选择一个必填字段,如果选择值为“是”/“medyes”,则将医学文本输入设为必填字段。 但是,如果选择值为no或为空,则不必要求输入医学文本。

您需要使用一个function() ,它与depends属性一起返回true/false

 rules: { medical: { required: true }, medicaltext: { // <- NAME attribute of the input required: { depends: function() { return ($("#medical").val() == "medyes"); } } }, }, 

.validate()方法中,只能使用每个输入元素的name属性来分配规则。 由于我没有看到任何带有name="medcon"输入,因此需要更改它以匹配文本输入元素上的name

请参阅depends文档: jqueryvalidation.org/validate/#rules


对于required处理select ,您还需要更改此行...

  

进入这...

  

演示: http : //jsfiddle.net/34oo7nrg/