我有一个需要验证的下拉列表,但它的行为并不像我期望的那样。
# 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 },
}
});
重现的步骤:
valid
类会添加到下拉列表中invalid
班级不会添加到下拉列表中。当我提交表单并观察错误时,上述步骤仅按预期工作。然后,当我重复步骤1-5时,当我选择一个选项(生产,登台或测试)时会添加valid
类,当我选择提示invalid类>选择一个环境
答案 0 :(得分:1)
根据文档(https://jqueryvalidation.org/documentation/),它表现得像预期的那样。
在字段标记为无效之前,验证是惰性的:之前 用户可以第一次提交表单 字段没有令人讨厌的消息 - 他们不会被窃听 在有机会实际输入正确值之前
一旦某个字段被标记为无效,它就会得到热切的验证: 用户输入了必要的值,删除了错误消息