Rails 5 - 对form.select的jQuery验证仅在提交

时间:2017-10-23 20:51:35

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

我有一个需要验证的下拉列表,但它的行为并不像我期望的那样。

# app/views/forms/_form.html.erb

<%= form.select :environment, [ 'Production', 'Staging', 'Test' ],
{ prompt: 'Select an Environment' }, { required: true } %>


# app/assets/javascripts/forms.js
$('form#new_form').validate({
  validClass: "valid",
  errorClass: "invalid",
    rules: {
      'form[environment]': { required: true },
    }
});

重现的步骤:

  1. 点击下拉菜单
  2. 选择一个选项;生产,分期或测试
  3. valid类会添加到下拉列表中
  4. - 出现问题 - 点击下拉列表中的后退,然后选择提示选择环境
  5. invalid班级会添加到下拉列表中。
  6. 当我提交表单并观察错误时,上述步骤仅按预期工作。然后,当我重复步骤1-5时,当我选择一个选项(生产,登台或测试)时会添加valid类,当我选择提示invalid类>选择一个环境

1 个答案:

答案 0 :(得分:1)

根据文档(https://jqueryvalidation.org/documentation/),它表现得像预期的那样。

  

在字段标记为无效之前,验证是惰性的:之前   用户可以第一次提交表单   字段没有令人讨厌的消息 - 他们不会被窃听   在有机会实际输入正确值之前

     

一旦某个字段被标记为无效,它就会得到热切的验证:   用户输入了必要的值,删除了错误消息