Per*_*ika 2 ajax jquery trim jquery-select2-4 select2
我正在使用 Select2 和 Ajax 来加载远程数据(建议)。
一切正常,但有一个问题:当用户只输入空格(按空格键)时 - 正在发送 Ajax 请求。
我怎样才能防止这种情况?另外,我想在发送之前修剪条款。
$(".js-data-example-ajax").select2({
placeholder: "Select... ",
minimumInputLength: 3,
ajax: {
url: "/my-site/tags",
dataType: 'json',
data: function (params) {
return {
q: params.term
};
},
processResults: function (data) {
return {
results: data
};
},
cache: true
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我忘了提到我已经尝试过这样的事情:
data: function (params) {
if (params.term.trim().length < 2) {
return;
}
return {
q: $.trim(params.term)
};
},
Run Code Online (Sandbox Code Playgroud)
并且仍然发送 GET (Ajax) 请求。
您可以使用该data函数来检查搜索的长度term(修剪后),如果长度 < 3 则返回:
data: function (params) {
if (params.term.trim().length < 3) {
throw false;
}
return {
q: params.term.trim()
};
},
Run Code Online (Sandbox Code Playgroud)
我试图minimumInputLength从data函数内部获取 的值但不能,所以你应该使用这个数字写两次。
我能够停止请求的唯一方法是throw在data函数内部进行异常处理。我知道这可能不是一个好的选择,但它有效。
我还发现了一个关于这个问题的公开票:https : //github.com/select2/select2/issues/1637 所以我想(目前)还没有这样的选择。
| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |