首页 > 解决方案 > 基于选择值的jQuery验证规则

问题描述

我有以下表格。

<form id="myform">
    <select id="country" name="country">
        <option value="US">United States</option>
        <option value="CA">Canada</option>
        <option value="AU">Australia</option>
        <option value="NZ">New Zealand</option>
        <option value="IE">Ireland</option>
    </select>
    <input type="text" name="zip_code" id="zip-code">
    <input type="submit">
</form>

当所选国家/地区为 时,我希望该zip_code字段包含digits: true规则United States。这是我根据此代码尝试过的。

$("#myform").validate({
    rules:{
        zip_code: {
            required: true,
            maxlength: 10,
            digits: function(element){
                return $("#country").val() == 'US';
            }
        }
    }
});

编辑:我错了,这确实启用digits了验证,但是当我更改国家/地区时,digits规则不会变为错误

标签: jqueryhtmlformsvalidationhtml-select

解决方案


在这里我注意到你做错了几件事,你给出了变量而不是 id,

   $("#myform").validate({
          rules:{
              zip_code: {
                  required: true,
                  maxlength: function() {
                    if($("#country").val() == 'US'){
                      return 5;
                    }else {
                      return 10;
                    }
                  },
                  digits: {
                  depends: function(element) {
                      return $("#country").val() == 'US';
                    }
                  }
              }
          }
      });

推荐阅读