Mai*_*mad 6 javascript ajax jquery twitter-bootstrap typeahead.js
我一直在typeahead.js使用BloodHound remote选项加载和加载数据.
寄托都正在按预期不同的是,当我输入only spaces的textbox键盘缓冲仍sends ajax call.
我想知道是否有方法,prevent ajax call如果有only spaces文本框.我正在寻找类似的行为trim.
这是我的代码.我试过使用prepare功能,但没有运气.
var dataSource = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('ProductID', 'ProductName'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: urlVar + "LoadAllProductByProductName/%QUERY",
wildcard: '%QUERY',
},
sufficient: 3,
});
const $tagsInput = $('.txtProductName')
$tagsInput.typeahead({
minLength: 3,
source: dataSource,
hint: false,
highlight: true,
isBlankString: false
},
{
limit: 10,
source: dataSource,
name: 'dataSource',
display: function (item) {
return item.ProductName
},
suggestion: function (data) {
return '<div>' + data.ProductName + '–' + data.ProductID + '</div>'
},
});
Run Code Online (Sandbox Code Playgroud)
该remote属性有一个prepare函数,您可以在通过线路进行调用之前使用该函数来处理此更改。
举个例子:
function createBloodHoundConfig(options) {
return {
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('Name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
identify: options.identify,
sufficient: 8,
remote: {
url: options.url,
prepare: function (query, settings) {
settings.url = settings.url.replace("{q}", query.trim());
return settings;
}
},
};
}
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,您不提供该wildcard属性,因为它实际上是进行令牌替换的简写。
| 归档时间: |
|
| 查看次数: |
728 次 |
| 最近记录: |