javascript - Kendo MultiSelect 无法读取属性 'value'

标签 javascript jquery kendo-ui

这是我的 PartialView:

.......

        <div class="form-group">
            @Html.LabelFor(model => model.securities, htmlAttributes: new { @class = "control-label col-md-2"})
            <div class="col-md-10">

       @(Html.Kendo().MultiSelect()
         .Name("productMultiSelect")
         .DataTextField("label")
         .DataValueField("value")Product to be used by the multiselect as a value.
         .HtmlAttributes(new { style = "width:350px; height:350px", @id = "prd" })
         .Filter(FilterType.Contains)
        .DataSource(source =>
         {
             source.Read(read =>
             {
                 read.Action("GetLogin", "IT_Inventory");
             })
             .ServerFiltering(false);
         })
        .Value(ViewBag.SelectedItem2)
        .ItemTemplate("<span><h3 style=\"font-size: 1.2em;font-weight: normal;margin: 0 0 1px 0;padding: 0;\">#: data.label #</h3><p style=\"margin:0;padding:0;font-size: .8em; \">#: data.desc #</p></span>")  
                )
            </div>
        </div>

我的按钮:

<button type="button" id="btnSave" class="btn btn-success btn-lg">Save </button>

我的JS:

<script>
    $("#btnSave").click(function (e) {
        e.preventdefault();
        $.ajax({
            type: 'POST',
            url: '@Url.Action("SignIT", "IT_Inventory")',
            data: JSON.stringify({ productMultiSelect: $("#productMultiSelect").data("kendoMultiSelect").value(), id: $("#id").val(), SomeBooleanProperty: false }),
            dataType: 'json',
            contentType: 'application/json',
            success: function (data) {
                if (data == true) {
                    $("#onInsert").data("kendoWindow").close();
                }
                else {
                    alert("Error!");
                }
            },
            error: function () {
                alert("An error has occured!!!");
            }
        });
    });
</script>

当我尝试发送到 Controller 时,我得到了 Uncaught TypeError: Cannot read property 'value' of undefined。对于 id 和 SomeBooleanProperty 是可以的。 当我使用提交表单时就可以了。 我应该将数据发布到 productMultiSelect 的 Controller 列表吗?

最佳答案

看起来你还没有初始化你的 kendoMultiSelect,或者它在另一个 div 中;

检查一下:

console.log($("#productMultiSelect").length); //should be at least 1, if 0, then you initialized kendo in come other div

console.log($("#productMultiSelect").data("kendoMultiSelect")); //should be an object - if undefined, then you have not initialized kendo 

关于javascript - Kendo MultiSelect 无法读取属性 'value',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161657/

相关文章:

javascript - ruby on rails 中的 Ajax 成功回调

jquery - 示例项目插件 jquery 文件上传插件在 ASP .NET MVC3 中实现

html - Kendo UI 上传小部件 - saveField 和 saveUrl

kendo-ui - Kendo UI - 从循环编辑器中隐藏 "End: Never"选项

javascript - 如何在定义为箭头函数(类属性)的 React 组件上测试组件方法?

javascript - 在 Meteor js 中生成 PDF 报告

jquery - 如何将滚动条 (Jscrollpane) 添加到固定布局(居中 2 列 + 标题,100% 高度)列

javascript - 如何获取 javascript 对象的主要属性?

javascript - grails中的错误管理

javascript - 内联更新后 Kendo Treelist 重新加载/刷新