0

我有一个带有服务器过滤的剑道多选,如下所示。

$("#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 日更新

有没有办法停止从数据源内部的数据函数发送服务器请求?

4

1 回答 1

0

目前没有选项,您可以从值函数中获取值或在客户端和服务器端验证它。

于 2016-11-23T10:18:32.843 回答