我有一个带有服务器过滤的剑道多选,如下所示。
$("#ddlAnalysisTeamMember_" + _WidgetID).kendoMultiSelect(
{
autoBind: false,
minLength: 3,
//placeholder: 'User Name',
dataTextField: 'Text',
dataValueField: 'ID',
filter: 'contains',
autoClose: false,
delay: 200,
dataSource: {
serverFiltering: true,
transport: {
read: {
url: _VirDir("GetUsernameMultiAutoComplete", "LoadController"),
dataType: 'json'
}
}
}
}
);
我需要的?
我需要让用户在框中输入搜索字符串,比如用户输入“apple”进行搜索并检查其中是否有任何 html。如果有任何 html 类型,我需要发出警报()并停止服务器调用以进行过滤。
到目前为止我做了什么?
我像这样在多选中尝试了虚拟
virtual: {
itemHeight: 26,
valueMapper: function (options) {
alert(options.value);
}
},
dataSource: {
serverFiltering: true,
transport: {
read: {
url: _VirDir("GetUsernameMultiAutoComplete", "WidgetsLoad"),
dataType: 'json'
}
}
},
但这不起作用。
2016 年 11 月 28 日更新
我得到了用户使用下面的代码输入的搜索字符串。并成功验证字符串并显示验证消息。
dataSource: {
serverFiltering: true,
transport: {
read: {
url: _VirDir("GetUsernameMultiAutoComplete", "WidgetsLoad"),
dataType: 'json',
data: function () {
var searchText = $.trim($("#ddlAnalysisTeamMember_" + _WidgetID).data('kendoMultiSelect').input.val());
if(searchText.showDangerousString()){// show error message div if restricted chars found.
// block server request
e.preventDefault(); // not working. a server request is going
return false; // not working. a server request is going
}
else
{
return true;
}
}
}
}
}
即使我尝试过e.preventDefault()
并且return false;
服务器调用正在进行。
有没有办法停止服务器调用?
在发送到服务器以过滤数据之前,是否有任何事件可以捕获用户在多选中输入的内容?
有什么方法可以让用户输入搜索文本?
2016 年 11 月 28 日更新
有没有办法停止从数据源内部的数据函数发送服务器请求?