Javascript JQuery验证插件有效方法始终返回true

Javascript JQuery验证插件有效方法始终返回true,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,好吧,我觉得我太笨了,无法解决这个基本问题,我有一个非常普通的Html表单: <form id="SimpleForm" class="form-horizontal bordered-row"> <div class="form-group"> <label class="col-sm-3 control-label">Service provider</label> <div class="col-sm-6">

好吧,我觉得我太笨了,无法解决这个基本问题,我有一个非常普通的Html表单:

<form id="SimpleForm" class="form-horizontal bordered-row">
  <div class="form-group">
    <label class="col-sm-3 control-label">Service provider</label>
    <div class="col-sm-6">
      <input type="text" class="form-control required" id="pname" name="pname" data-val="true">
    </div>
  </div>
  <div class="form-group">
    <label class="col-sm-3 control-label">Store name</label>
    <div class="col-sm-6">
      <input type="text" class="form-control required" id="storeName" data-val="true" name="storeName" placeholder="">
    </div>
  </div>
</form>
这是一个非常基本的东西,仍然不工作,请帮助我之前失去更多的头发

编辑:

我忘了提到我有一个自动执行功能,这是罪魁祸首:

var postSp = function () {
    $("#BtnAddProvider").click(function (e) {

       if ($ValidateForm.valid()) {
          }
     });
}();
此函数是在验证插件设置其角色之前执行的,在该函数解决我的问题之前,将验证角色移动到要执行的位置

var postSp = function () {

     $("#SimpleForm").validate({
        roles: {
            pname: {
                required: true,
                //minlength: 5,
                //maxlength: 50
            },
            storeName: {
                required: true,
                //minlength: 5,
                //maxlength: 50
            }
        },
        messages: {
            pname: {
                required: "Required field"
            },
            storeName: {
                required: "Required field"
            }
        },
        errorElement: 'div',
        errorLabelContainer: '.alert-danger',
        errorPlacement: function (error, element) {
            var placement = $(element).data('error');
            if (placement) {
                $(placement).append(error);
            } else {
                error.insertAfter(element);
            }
        }
    });
    $("#BtnAddProvider").click(function (e) {

       if ($ValidateForm.valid()) {
          }
     });
}();

首先,没有id为
#CreateForm
的表单元素。它应该是
#SimpleForm

$("#SimpleForm").validate({
        roles: {
            pname: {
                required: true,
                //minlength: 5,
                //maxlength: 50
            },
            storeName: {
                required: true,
                //minlength: 5,
                //maxlength: 50
            }
        },
        messages: {
            pname: {
                required: "Required field"
            },
            storeName: {
                required: "Required field"
            }
        },
        errorElement: 'div',
        errorLabelContainer: '.alert-danger',
        errorPlacement: function (error, element) {
            var placement = $(element).data('error');
            if (placement) {
                $(placement).append(error);
            } else {
                error.insertAfter(element);
            }
        }
    });
然后,您不应该使用从
validate
返回的变量,只需像这样尝试

 if ($("#SimpleForm").valid()) {
 }

我不知道验证的语法,但我认为错误元素应该是
而不是
div
不,与此无关是的,这是正确的,只是删除了我发布的答案。应用我提供的第二步。
 if ($("#SimpleForm").valid()) {
 }