我的场景是我从数据库中获取一些值作为 autocomplete
,如 V001/Vendor 1
, V002/Vendor 2
, .. ...
所以我想要的是,如果用户已经在第一个文本框中选择了 V001/Vendor 1
,那么他不应该能够在第二个文本框中选择相同的 V001/Vendor 2
.这是它的样子
此外,请查看我在 jquery 中的自动完成代码
autocompleteOptions = {
minLength: 3,
source: function (request, response) {
var term = $.trim(request.term);
$.ajax({
//receives json array answer from the url
url: AppConfig.PrefixURL + "App/GetVendorList",
data: { "VENDORNAME": "" + extractLast(term) + "" },
dataType: "json",
type: "POST",
success: function (data) {
var datalist = JSON.parse(data);
response($.map(datalist, function (element, index) {
return {
label: element.VENDORNAME,
value: element.VENDORCODE + "/" + element.VENDORNAME
};
}));
},
error: function () {
// added an error handler
response($.ui.autocomplete.filter(
["VENDORNAME", "VENDORCODE"]
, extractLast(term)));
}
});
},
select: function (e, u) {
if (u.item.value == "") {
return false;
}
},
change: function (event, ui) {
$(this).val((ui.item ? ui.item.value : ""));
if ($(this).val().trim() == "" || $(this).val() == null || $(this).val() == "null") {
var name = $(this).attr('id');
var id = parseInt(name.substr(13, name.length));
$('#spFromDate' + id).val('');
$('#spToDate' + id).val('');
}
},
};
$("#txtVendorName1").autocomplete(autocompleteOptions);
请建议如何实现这一目标。
最佳答案
如果 textbox2 与 textbox1 具有相同的值,您可以从自动完成建议中清除选择选项的第二个文本框值,这样用户就无法再次选择相同的选项。
试试这个类型的代码:
$(document).on('change','#textbox2',function(){
var value1=$('#textbox1').val();
var value2=$('#textbox2').val();
if(value2==value1){
$('#textbox2').val("");
}
});
关于javascript - 过滤自动完成数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017877/