我使用Select2插件作为输入框的自动完成功能。自动完成程序进行Ajax调用,一切都运行良好,除非没有结果,然后我想保留原样并且不起作用。例如:如果我键入" 555"并且在Ajax调用中找不到该值,然后我想离开" 555"作为文本值,因为我稍后会点击一个按钮添加它。
这是我的代码:
if ($codigo_arancelario.length > 0) {
$codigo_arancelario.select2({
placeholder: "Seleccione un estado",
ajax: {
dataType: 'json',
url: function () {
var codigo_arancelario = $codigo_arancelario.val();
return Routing.generate('obtenerCodigoArancelario');
},
data: function(codigo_arancelario) {
return {
filtro: codigo_arancelario
}
},
results: function (data) {
return {
results: data.entities
};
}
},
formatNoResults: function () {
return "No se encontró el código";
},
formatAjaxError: function () {
return "No hay conexión con el servidor";
},
});
}
这是一个直观的例子:
为了达到这个目的,我还需要做些什么?
答案 0 :(得分:1)
为什么不用响应处理这个,如果响应没有数据返回用于查询数据的原始值?
根据请求,这里有一个例子,如果您使用C#和EF搜索数据库中的结果,它会是什么样子。请记住,这是一个非常简单的示例,说明您对AJAX呼叫所服务的内容一无所知。
var searchResult = db.Where(x=> x.somethingToSearchAgainst == searchPeram);
return searchResult.length == 0
? searchPeram
: searchResult;