如何强制"需要"选择仅基于另一个选择

时间:2015-09-09 00:10:34

标签: jquery jquery-validate

我有一个包含两个选择和其他一些字段的表单。我正在使用jqueryvalidation。我的问题是我有第一个选择(国家/地区)预先填写并且需要,并且只有这里选择的值是" mx"然后我必须再做一次选择(状态)。

选择是这样的:

<select  id="pais" name="pais" data-placeholder="Escoje tu país de nacimiento" class="chosen-select" style="width:350px;">
<option value=""> </option>
<option value="mx" selected="selected">México</option>
<option value="af">Afganistán</option>
<option value="al">Albania</option>
...
</select>

我现在的验证规则是:

pais: {required: true},
lugarnacimiento: {required: function (element) {return $("#pais").val() == "mx"; }},

这不起作用。任何想法都表示赞赏。谢谢你的时间。

此致

编辑:添加更多信息

这是验证(完整)

$(document).ready(function() {
$("#fpp_form").validate({
rules: {
  esai: {required: true},
  genero: {required: true},
  nombre: {required: true},
  paterno: {required: true},
  fechnacimiento: {required: true},
  lugarnacimiento: {required: function (element) {return $("#pais").val() == "mx"; }},
  pais: {required: true},
  telefono: {required: true},
  email: {required: true, email: true}
}
});
});

这是第二个选择(lugarnacimiento)

<label for="lugarnacimiento" class="required fixed">Estado</label>
<select  id="lugarnacimiento" name="lugarnacimiento" data-placeholder="Escoje tu estado de nacimiento..." class="chosen-select" style="width:350px;">
<option value="">Seleccione uno</option>
<option value="Aguascalientes">Aguascalientes</option>
<option value="Baja California">Baja California</option>
<option value="Baja California Sur">Baja California Sur</option>
...
<option value="Zacatecas">Zacatecas</option>
<option value="Otro">En otro país</option>
</select>

1 个答案:

答案 0 :(得分:0)

嗯,真正的问题是select语句正在使用另一个库:jquery-chosen并且会干扰验证器。

我的最终规则(删除所选的库调用后)是:

lugarnacimiento: {required: $("#pais").val() === 'mx' },