使用jquery验证插件验证Jquery自动完成字段

Let*_*see 0 javascript jquery autocomplete jquery-validate

我对jquery不太满意,因此需要你的帮助.

我有一个表单,其中有两个字段"origin"和"destination".所以我在两个字段中使用jquery自动完成.

$('#form1_origin,#form1_destination').autocomplete({
        lookup: countriesArray,
        minChars: 0,
    });
Run Code Online (Sandbox Code Playgroud)

它工作得很好但是当我尝试使用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
    },
});
Run Code Online (Sandbox Code Playgroud)

问题:-

我很确定jquery会验证onkeyup上的字段.所以,如果我TYPE在此字段中的值,它工作正常,但是当我选择从自动完成列表中的值,它不验证领域,因为我仍然可以看到正在显示的错误.那么我能做些什么来使它适用于两者?

Spa*_*rky 6

引用OP:

"因为我很确定jquery会验证字段onkeyup.所以如果我在此字段中输入值,它可以正常工作,但是当我从自动完成列表中选择值时,它不会验证字段,因为我仍然可以看到错误正在展示.那么我能做些什么来使它适用于两者?"

jQuery Validate插件input通过多个触发器来评估文本元素...按键,模糊和提交按钮单击(所有字段一次).

jQuery Validate插件还为您提供了以.valid()编程方式触发验证的方法.

我认为你没有显示足够的相关代码,但基本上,.valid()只要字段的值发生变化,你就需要触发.

根据需要调整代码......

$('input[name="autocompletedField]').on('change', function() {
    $(this).valid();  // trigger validation test
});
Run Code Online (Sandbox Code Playgroud)