我有一个带有服务器过滤功能的kendo multi select,如下所示。
$("#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类型,我需要提出alert()并停止服务器调用进行过滤。
到目前为止我做了什么?
我在这样的多选中尝试了虚拟
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日更新
有没有办法停止从数据源内的数据函数发送服务器请求?