Javascript 多部分jQuery验证

Javascript 多部分jQuery验证,javascript,jquery,forms,jquery-validate,validation,Javascript,Jquery,Forms,Jquery Validate,Validation,我试图分别验证表单的不同部分。不幸的是,表单是由CMS生成的,因此我的操作受到限制 我尝试过创建一个validate对象数组,使用当前表单部分作为索引。即: //initialize validation validators = [ $('#donation_amount').validate({ rules:{ amount: { required: true } } }), $('#personal_information').validate({ rules:{

我试图分别验证表单的不同部分。不幸的是,表单是由CMS生成的,因此我的操作受到限制

我尝试过创建一个
validate
对象数组,使用当前表单部分作为索引。即:

  //initialize validation
  validators = [
    $('#donation_amount').validate({ rules:{ amount: { required: true } } }),
    $('#personal_information').validate({ rules:{ Street: { required: true } } })
   ];
通过这样的部分进行转换:

  $('#btn-next').click(function() {
    //if validation is true, show next page
    if (validators[curOrder].valid()) {
      var old = $('.active');
      var oldOrder = old.attr('data-order');
      var newOrder = parseInt(oldOrder) + 1;
      old.removeClass('active');
      $("[data-order='" + newOrder + "']").addClass('active');
      curOrder = newOrder;
    }else{
      console.log("invalid");
   }
});
然而,验证总是返回
true


这里是有问题的页面:

当您自己编写一点javascript时,为什么还要使用.validate插件。单击时,只需检查输入值(如$('#myInput').val().trim()==“”),并显示/隐藏每个输入的相应错误div

此外,对于多部分验证,只验证所需的字段,然后继续执行应该执行的操作

$('#btn-next').click(function() {
var amountValid = $('#donation_amount').val().trim() == '' ? false : true;
var infoValid = $('#personal_information').val().trim() == '' ? false : true;

if (amountValid && infoValid) {
  var old = $('.active');
  var oldOrder = old.attr('data-order');
  var newOrder = parseInt(oldOrder) + 1;
  old.removeClass('active');
  $("[data-order='" + newOrder + "']").addClass('active');
      curOrder = newOrder;
    }else{
      console.log("invalid");
    }
});

您不应该将
.validate()
放在
单击处理程序中。它是用来初始化表单的,应该放在
文档中。ready
。当您需要在事件内部测试表单时,请使用
.valid()
,它将返回真/假。否则,
.validate()
中已经内置了可以使用的事件。请看:,和。好的,这是有道理的。但如何更改命令的验证规则?这似乎是我想在每个部门轮班时重新初始化表单的地方。我不确定你在问什么,我也不完全理解你想怎么做。我过去所做的是将多部分表单分解为多个表单。在所有表单上初始化一次
validate()
,并在单击
next
按钮时使用
.valid()
测试表单。对不起,让我重新措辞。因此,在每一步中,我只想验证显示字段。因此,如果我有一个完整的规则块,它将返回一个无效的结果,即使用户还没有访问这些字段,对吗?那么我前面的评论就站得住脚了。每个部分都有自己的
表单
,您可以单独验证。否则,您将处理一些非常不必要的复杂问题。我将检查电子邮件地址、数字格式等的有效性。它还需要添加无效的标签和类。如果我扔掉验证插件,这一切看起来都像是我在重新发明轮子,而且以一些相当麻烦的方式。