我有一个伪选择元素的形式。伪选择元素是一个下拉菜单。当其中一个下拉项目被点击时,隐藏的输入会被分配给该项目的值。我使用jQuery.validate来验证表单。一个简单的验证规则绑定到隐藏的输入。如果输入没有值,则隐藏输入和伪选择将被赋予一个错误类别,并显示错误消息。jQuery.validate和隐藏输入
我的问题是,更改隐藏输入的值不会触发更改,键入或模糊事件。如果将错误状态应用于隐藏的输入,则在输入被赋予有效值后,该状态将保留。只有当表单再次提交时,输入才能正确验证。
由于jQuery.validate启用隐藏输入验证,我想知道是否有配置或方法来处理这个问题。
编辑:
$form.validate({
ignore: false,
rules: {
'firstname': 'required',
'lastname': 'required',
'org': 'required',
'role': 'required',
'email': {
required: true,
email: true
}
},
messages: {
'firstname': 'Please enter your first name',
'lastname': 'Please enter your last name',
'org': 'Please enter your organization',
'role': 'Please select your role',
'email': 'Please enter your email'
},
errorPlacement: function(error, element) {
var $errMessage = $('.js-err-message');
$errMessage.removeClass('js-hidden');
$(error).each(function(){
$errMessage.append(error);
if (element.is('#role-input')) {
$('.pseudo-select').addClass('mad-error');
}
});
}
});
你最好发布所有相关的代码 – 2014-12-01 15:39:48
对不起,我不认为代码是严格相关的。我的问题是关于一般jQuery.validate的功能,而不是关于我的代码的问题。 – maxhallinan 2014-12-02 15:06:12
相关代码将包含重现此问题所需的_any_代码。在你的情况下,当他们为他们的答案创建演示时,它可以节省时间。如果他们遇到类似的问题,它还可以帮助未来的读者更好地理解问题/解决方案。谢谢。 – Sparky 2014-12-02 23:38:27