Javascript 将JQuery验证与JQuery自动完成相结合

Javascript 将JQuery验证与JQuery自动完成相结合,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我有一个有三个字段的表单。前两个输入中的一个是必需的(可以是一个,也可以是两个),第三个字段始终是必需的。对于前两个,我已经将它们添加到一个组来处理它。这是到目前为止我的代码 var validator = $("#my_form").validate({ groups: { datagroup: "fieldOne fieldTwo" }, rules: { fieldOne: { require_from_gro

我有一个有三个字段的表单。前两个输入中的一个是必需的(可以是一个,也可以是两个),第三个字段始终是必需的。对于前两个,我已经将它们添加到一个组来处理它。这是到目前为止我的代码

var validator = $("#my_form").validate({
    groups: {
        datagroup: "fieldOne fieldTwo"
    },
    rules: {
        fieldOne: {
            require_from_group: [1, '.datagroup'],
            email: true,
            maxlength: {
                param: 40,
                depends: function (element) {
                    var valTwo = $('#fieldTwo').val();
                    return !valTwo || (valTwo.length < 8) || (valTwo.length > 18);
                }
            }
        },
        fieldTwo: {
            require_from_group: [1, '.datagroup'],
            minlength: {
                param: 8,
                depends: function (element) {
                    var valOne = $('#fieldOne').val();
                    return !valOne || (valOne.length > 40);
                }
            },
            maxlength: {
                param: 18,
                depends: function (element) {
                    var valOne = $('#fieldOne').val();
                    return !valOne || (valOne.length > 40);
                }
            }
        },
        fieldThree: {

        }
    }
});
var validator=$(“#我的表格”).validate({
小组:{
数据组:“字段一字段二”
},
规则:{
现场一:{
需要来自_组[1',.datagroup']的_,
电子邮件:是的,
最大长度:{
参数:40,
依赖:函数(元素){
var valTwo=$('#fieldTwo').val();
return!valTwo | |(valTwo.length<8)| |(valTwo.length>18);
}
}
},
第二场:{
需要来自_组[1',.datagroup']的_,
最小长度:{
参数:8,
依赖:函数(元素){
var valOne=$('#fieldOne').val();
return!valOne | |(valOne.length>40);
}
},
最大长度:{
参数:18,
依赖:函数(元素){
var valOne=$('#fieldOne').val();
return!valOne | |(valOne.length>40);
}
}
},
第三场:{
}
}
});
这是我的问题。上述方法处理前两个输入时不会出现问题。第三个输入是使用jqueryautocomplete在用户键入时向用户显示列表。我需要确保提交的值在该列表中。我还需要确保提供了一个值

我不确定是否需要将第三个输入与前两个输入合并到组中?我也不确定如何确保该值在我的列表中


感谢您的建议。

在您的脚本开头,制作一份不可见的原始姓名列表副本:

var values = [];
$('#autocomplete').find('option').each(function(){
    values.push(this.value);
});
要避免人们向列表中添加姓名,并保留原始姓名列表,以便通过以下方式签入jQuery验证程序:

            depends: function (element) {
                var valOne = $('#autocomplete').val();
                return !valOne || (values.indexOf(valOne) < 0);
            }
依赖:函数(元素){
var valOne=$(“#自动完成”).val();
return!valOne | |(values.indexOf(valOne)<0);
}