jQueryValidate - Required field - depends doesn't work

安稳与你 提交于 2019-12-21 03:57:26

问题


With jQueryValidate, I'm trying to make a field required only if another specific field is empty. So, after searching on the Internet, I did this :

rules: {
     marque: {
          required: {
               depends: function() {
                    if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) {
                         return true;
                     }
                     else {
                         return false;
                     }
               }
          }
     }
}

Unfortunately, it doesn't work. But, if I do this :

depends: function() {
     if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) {
          alert("Here!");
          return true;
      }
      else {
           return false;
      }
}

The alert box appears. So, my test seems to work. Can anyone tell me what I did wrong? I'm using jQuery 1.8.3 and qTip2 with jQueryValidate. Thank you very much!


回答1:


Your syntax and use of the plugin is correct from what you have given. You need to troubleshoot, so first try this

marque: {
    required: true;
}

simple. Does the error message appear? If yes then try this

marque: {
    required: {
        depends: function () { return true; /* or false */ }
    }
}



回答2:


You really should be able to do this without the depends option, just make the function work directly on the required object:

rules: {
     marque: {
          required:  function() {
                 if (($('#add_marque').val() == "Ajouter une marque" && (('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) {
                     return true;
                 }
                 else {
                     return false;
                 }
          }
     }
}

See a working, simpler example here: http://jsfiddle.net/ryleyb/3hqH6/1/




回答3:


required: {
                    depends:function (element) {
                        if ($('#inter').val() == '11' && $('#inter_rson').val() == '8') {
                            return true;
                        } else if ($('#inter').val() != '11' && $('#inter_rson').val() == '8') {
                            return true;
                        } else if ($('#inter').val() == '11' && $('#inter_rson').val() != '8') {
                            return true
                        } else {
                            return false;
                        }
                     }
                }

depends works like charm when element is depends on other value as August Miller says. If you don't use depends, you may stuck at a screen with validation error.



来源:https://stackoverflow.com/questions/17127509/jqueryvalidate-required-field-depends-doesnt-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!