JQuery添加验证方法以验证表单中的另一个元素
我正试图在JQuery中创建一个自定义验证方法,但无法使其正常工作 以下是我想做的:JQuery添加验证方法以验证表单中的另一个元素,jquery,validation,jquery-validate,Jquery,Validation,Jquery Validate,我正试图在JQuery中创建一个自定义验证方法,但无法使其正常工作 以下是我想做的: <div class="row"> <label for="fld-stories">Stories</label> <select id="fld-stories" class="valid" name="stories" title=""> <option value="">--</option>
<div class="row">
<label for="fld-stories">Stories</label>
<select id="fld-stories" class="valid" name="stories" title="">
<option value="">--</option>
<option value="1" label="1">1</option>
<option value="2" label="2">2</option>
<option value="3" label="3">3</option>
<option value="4" label="4">4</option>
<option value="5" label="5">5</option>
</select>
</div>
<div id="row_master_bedroom_location" class="row">
<label for="fld-master_bedroom_location">Master Bedroom Location</label>
<select id="fld-master_bedroom_location" name="master_bedroom_location" title="">
<option value="up">Upstairs</option>
<option value="down">Downstairs</option>
</select>
</div>
故事
--
1.
2.
3.
4.
5.
主卧位置
楼上的
楼下
如果用户选择楼上的主卧位置(参见第二个选择),房子的层数应大于或等于2(这是合乎逻辑的,因为如果只有一层,主卧就不能在楼上)
为此,我尝试向JQuery验证程序添加一个自定义方法:
$.validator.addMethod('masterBedroomLocation', function(value, element, params) {
if (value == 'up' && $("#fld-stories").val() < 2){
return false;
}
}, 'You cannot select "Upstairs" for a one–story home');
$.validator.addMethod('masterbeddroomlocation',函数(值、元素、参数){
if(value='up'&&$(“#fld stories”).val()<2){
返回false;
}
},“您不能为一层楼住宅选择“楼上”);
我不确定如何获取表单中另一个元素的值,我尝试了JQuery的旧方式,但似乎不起作用
为了获得更多信息,我在全局javascript文件中添加了自定义方法,该函数将JQuery验证绑定到每个具有特殊类名的表单。我成功地使其工作。
它看起来像Jquery选择器
$(“fld故事”)
工作正常。
由于某种原因,我不知道,如果我颠倒我的检查方式,并返回一个true而不是false,那么该方法是有效的
以下是新方法:
$.validator.addMethod('masterBedroomLocation', function(value, element, params) {
if (value == 'up' && $("#fld-stories").val() >= 2){
return true;
}
}, 'You cannot select "Upstairs" for a one–story home');
我稍微改进了我的代码。 以下是新方法:
$.validator.addMethod('masterBedroomLocation', function(value, element, params) {
if($('#fld-master_bedroom_location').val() == 'down'){
return true;
}
else if($('#fld-master_bedroom_location').val() == 'up' && $("#fld-stories").val() >= 2){
return true;
}else{
return false;
}
}, 'You cannot select "Upstairs" for a one–story home');
我希望这能对某些人有所帮助。与其使用自定义验证方法,不如简单地修改相应的选择列表选项?更合理的是,用户在做出选择后不会看到不适用的选项。