jquery validate - 在提交之前添加规则

时间:2016-01-20 22:37:33

标签: javascript jquery ruby-on-rails validation jquery-validate

我的大部分问题都出在这个问题https://stackoverflow.com/questions/34846925/jquery-validate-rails-4-dynamically-update-rule-after-rendering-partial-via-a

我还没有得到任何反馈意见。我明白这可能很难理解。基本上我需要在提交之前根据html数据属性更改规则的参数。我想知道是否有办法做到这一点。

我尝试在submitHandler中添加规则:

$('#custom-tag').validate({
    onfocusout: false,
    submitHandler: function(form) {
      $('#custom-tag').rules("add", {
        tagUniqueness: $('#taglist').data('tag-list').split(', ')
      });
    },
    rules: {
      tag: {
        minLengthSquish: 2,
        maxLengthSquish: 25,
        alphanumericAndWhitespace: true
      }
    },
    tooltip_options: {
      tag: { placement: 'right', animation: false }
    }
  });

但是这没有用,我现在意识到submitHandler是在提交有效时运行的代码(可能应该被称为validSubmissionHandler)。

我还假设添加一个已存在的同名规则将覆盖当前规则和参数。如果不是,我只需删除然后添加。

有没有办法在提交之前添加规则?

1 个答案:

答案 0 :(得分:-1)

您似乎应该移出提交处理程序或验证处理程序。 IE,像这样:

$('form').submit(function(event) {
  $('#custom-tag').rules("add", {
    tagUniqueness: $('#taglist').data('tag-list').split(', ')
  });

  if ($('#custom-tag').valid() === false) {  
    // 'this' is the form, 
    event.preventDefault();
    // stop the submittion
    // ...message the user to let them know why the submit failed.
  }
});