JQuery验证:必需(依赖表达式)

时间:2012-02-08 12:17:17

标签: jquery-plugins

我希望仅在选择特定选项或选择特定单选按钮时或在文本输入字段中输入特定字符串时才需要字段(我可以找到所有必需(依赖表达式)示例假设依赖性是在文本字段的情况下是检查/取消选中还是填充/未填充输入

这是我需要的一个例子,基于无线电部分:

婚姻状况(必填项):

<input name="status" id='status'type="radio" value="couple" checked="checked" />
<input name="status" id='status'type="radio" value="single male"  />
<input name="status" id='status'type="radio" value="single female" />

合作伙伴名称(从属字段 - 仅在从上方选择“情侣”时才需要)

<input name="partner" type="text"  id="partner">

示例2:必填字段=地点

<select name="venue" id="venue">
<option value="">Please select venue</option>
<option>London EC1</option>
<option>London E9</option>
<option>Birmingham</option>

等。 从属字段=用户(只有上述选项之一需要,比如'伯明翰')

<input name="user" type="text" id="user">

对于上述情况,我如何调整显示的示例:http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression?

$("#myform").validate({
  rules: {
    details: {
      required: "#other:checked"
    }
  }, debug:true
});
$("#other").click(function() {
  $("#details").valid();
});

我试过了:

user: {
      required: "#venue:('birmingham')"
    }

partner: {
      required: "#status:('couple')"
    }

但是无论场地和状态如何,这些都会影响到用户和合作伙伴

1 个答案:

答案 0 :(得分:4)

对于第一个,您的无线电输入应具有不同的ID:

<input name="status" id='statusCouple' type="radio" value="couple" checked="checked" />
<input name="status" id='statusSingleMale' type="radio" value="single male"  />
<input name="status" id='statusSignleFemale' type="radio" value="single female" /> 

然后你的规则看起来像这样:

partner: {
  required: "#statusCouple:checked"
}

对于第二个,只需按照以下规则制定规则:

user: {
  required: function(element) { return $("#venue").val() == 'Birmingham'; }
}       

应该做的伎俩。