我对jquery不太满意,因此需要你的帮助。
我有一个表单,其中有两个字段“origin”和“destination”。所以我在两个字段中使用jquery自动完成。
$('#form1_origin,#form1_destination').autocomplete({
lookup: countriesArray,
minChars: 0,
});
它工作得很好但是当我尝试使用jquery验证插件验证这些字段时,我遇到了一些问题。
以下是代码: -
$('#form_1').validate({
errorClass: "airError",
focusInvalid: true,
success: function(element){
$(element).closest('.airError').removeClass('.airError');
},
errorPlacement: function(error,element){
if(element.attr("name") === "form1_infant" || element.attr("name") === "form1_departure"){
error.insertAfter('#showErrors');
}else{
error.insertAfter(element);
}
},
rules: {
form1_origin: {
validSelectionOrigin: true,
},
form1_destination:{
validSelectionDestination: true,
compare_origin_dest: true
},
// rules for rest of the fields
},
});
问题: -
我非常确定jquery会验证 onkeyup 上的字段。因此,如果我 TYPE 此字段中的值,它可以正常工作,但是当我从自动完成列表中选择值时,它不会验证该字段,因为我仍然可以看到显示的错误。那么我能做些什么来使它适用于两者?
答案 0 :(得分:5)
引用OP:
"我非常确定jquery会验证
onkeyup
上的字段。因此,如果我在此字段中输入值,它可以正常工作,但是当我从自动完成列表中选择值时,它不会验证该字段,因为我仍然可以看到显示的错误。那么我能做些什么来使它适用于两者?"
jQuery Validate插件通过多个触发器评估文本input
元素...按键,模糊和提交按钮单击(所有字段一次)。
jQuery Validate插件还为您提供了.valid()
方法,您可以在其中以编程方式触发验证。
我认为您没有显示足够的相关代码,但基本上,只要字段值发生变化,您就需要触发.valid()
。
根据需要调整代码......
$('input[name="autocompletedField]').on('change', function() {
$(this).valid(); // trigger validation test
});