Javascript select2自动为ajax调用选择项
当ajax响应包含额外数据时,是否有方法使select2控件自动选择项目 我想实现我的控制器,在JsonResult中将项目标记为精确马赫数,然后选择2控制自动选择,而不打开下拉列表 从用户指定: 如果用户键入与控制器上的项目完全匹配的select2文本框字符串。e、 g.如果用户输入条形码和控制器方法,则找到该条形码。 Select2控件将立即选择该项目,而不打开下拉列表Javascript select2自动为ajax调用选择项,javascript,ajax,jquery-select2,jquery-select2-4,Javascript,Ajax,Jquery Select2,Jquery Select2 4,当ajax响应包含额外数据时,是否有方法使select2控件自动选择项目 我想实现我的控制器,在JsonResult中将项目标记为精确马赫数,然后选择2控制自动选择,而不打开下拉列表 从用户指定: 如果用户键入与控制器上的项目完全匹配的select2文本框字符串。e、 g.如果用户输入条形码和控制器方法,则找到该条形码。 Select2控件将立即选择该项目,而不打开下拉列表 如果用户在查询中键入不完全匹配的内容,controller将返回不带param exact的项目列表,select2将打开
如果用户在查询中键入不完全匹配的内容,controller将返回不带param exact的项目列表,select2将打开下拉列表,显示用户可能选择的项目。要使用AJAX执行此操作,您需要向select DOM元素添加所选选项,然后触发select2小部件上的更改,使其重新绘制。下面可能是你正在寻找的。本例使用processResults检查是否有一个匹配项,它是否与用户键入的内容完全匹配
$("#product_id").select2({
ajax: {
url: "/api/productLookup",
dataType: 'json',
data: function (params) {
return {
term: params.term,
};
},
processResults: function (data) {
var searchTerm = $("#product_id").data("select2").$dropdown.find("input").val();
if (data.results.length == 1 && data.results[0].text == searchTerm) {
$("#product_id").append($("<option />")
.attr("value", data.results[0].id)
.html(data.results[0].text)
).val(data.results[0].id).trigger("change").select2("close");
}
return data;
},
minimumInputLength: 8,
cache: true
}
});
要使用AJAX实现这一点,您需要向selectDOM元素添加一个selected选项,然后在select2小部件上触发一个更改,使其重新绘制。下面可能是你正在寻找的。本例使用processResults检查是否有一个匹配项,它是否与用户键入的内容完全匹配
$("#product_id").select2({
ajax: {
url: "/api/productLookup",
dataType: 'json',
data: function (params) {
return {
term: params.term,
};
},
processResults: function (data) {
var searchTerm = $("#product_id").data("select2").$dropdown.find("input").val();
if (data.results.length == 1 && data.results[0].text == searchTerm) {
$("#product_id").append($("<option />")
.attr("value", data.results[0].id)
.html(data.results[0].text)
).val(data.results[0].id).trigger("change").select2("close");
}
return data;
},
minimumInputLength: 8,
cache: true
}
});
这会在ajax qery的select2定义中起作用吗?我会将其作为条形码元素更改处理程序的一部分运行,这样当条形码被扫描时,产品就会更新。我更新了答案,以包括一个示例select2定义,该定义将使后端能够在ajax请求中获取条形码。Thnx关于尝试帮助。但我想你不明白我在找什么。一个想法是选择2在2路1上工作:当用户输入时,项目控制器的一部分将返回itenms selec2,同时打开下拉列表。第二:当用户输入项目的excatk值时。控制器将只返回一个带有额外数据的项目,例如selected,然后Select2将不会打开dop'n'down,它将自动获取selected值。保存用户2单击确定,我想我现在更了解您的问题了。。。我更新了我的答案。。。您可能希望使用minimumInputLength选项来抑制下拉列表提前显示。这是否在ajax qery的select2定义中起作用?我会将其作为条形码元素更改处理程序的一部分运行,因此当扫描条形码时,产品将会更新。我更新了我的答案,添加了一个示例select2定义,该定义将使后端能够在ajax请求中获取条形码。Thnx帮助。但我想你不明白我在找什么。一个想法是选择2在2路1上工作:当用户输入时,项目控制器的一部分将返回itenms selec2,同时打开下拉列表。第二:当用户输入项目的excatk值时。控制器将只返回一个带有额外数据的项目,例如selected,然后Select2将不会打开dop'n'down,它将自动获取selected值。保存用户2单击确定,我想我现在更了解您的问题了。。。我更新了我的答案。。。您可能希望使用minimumInputLength选项来抑制下拉列表提前显示。