【问题标题】:Form validate with If使用 If 验证表单
【发布时间】:2016-12-19 07:00:05
【问题描述】:

我必须验证这样的表单:

$('#formfile').validate({
    highlight: function(element) {
        $(element).closest('.form-group').addClass('has-error');
    },
    unhighlight: function(element) {
        $(element).closest('.form-group').removeClass('has-error');
    },
    ignore: '',
    //focusInvalid: true,
    errorElement: 'span',
    errorClass: 'help-block',
    errorPlacement: function(error, element) {
        if(element.parent('.input-group').length) {
            error.insertAfter(element.parent());
        } else {
            error.insertAfter(element);
        }
        element.focus();
    },
    rules: {
        if(country == "INDONESIA") {
            tax: {
                required: true              
            }
        }
    },
    messages: {
        if(country == "INDONESIA") {
            tax: "Please insert file Tax"
        }
    }
});

我可以这样做吗?我想检查Country 是否是印度尼西亚,如果Country 是印度尼西亚,则该字段必须是强制性的。否则,如果Country 不是印度尼西亚,则可以忽略该字段。有什么建议吗?

编辑:我忘记了我使用变量来获取 Country - var Country = $('#country').val();

【问题讨论】:

  • 按照您编写的代码,您是否在开发人员工具控制台中看到错误? (答案是,你确实看到了错误)
  • 据说"=="不是函数
  • 标题根本不代表问题。改变它

标签: javascript jquery validation


【解决方案1】:

试试这个;)

你可以使用depends:

...
    rules: {
        tax: {
            required: {
                depends: function(element) {
                    return ($('#country').val() == 'INDONESIA');
                }
            }
        }
    }
...

Jquery validate depend field

【讨论】:

  • 什么不工作是你得到任何错误检查控制台的错误;并使用您正在使用的最新代码更新问题;
  • 没有任何事情发生或警告。必须报税。
  • 如果你能创建一个jsFiddle,那么调试事情会很容易;
【解决方案2】:

您可以使用内联条件运算符来做到这一点:

        rules: {
            country=="INDONESIA" ? 
              {
                  tax: {
                      required: true              
                  }
              } 
              : { }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-12
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 2020-08-09
    相关资源
    最近更新 更多