未将被操纵的输入字段发送到服务器



我正在使用一个自定义模板的剑道时间表。

...
      .Editable(editable => { editable.TemplateName("_CustomTemplate"); }))
...
模板

 ...
        <div class="k-edit-label">
            @(Html.LabelFor(model => model.Title))
        </div>
        <div data-container-for="title" class="k-edit-field">
            @(Html.TextAreaFor(model => model.Title, new { @class = "k-textbox", data_bind = "value:title" }))
        </div>
    ...

任何操作model.Title字段的方法都失败了。在每个js绑定一个值之后,它不再被发送到服务器。字段值保持为空或甚至不显示。我想说,为了让这个工作,我尝试了几乎所有我能找到的关于这个主题的东西,但我失败了。另外,添加一个新的<input>或甚至在模型中创建一个额外的字段并修改它也不起作用。

似乎是不可能设置任何输入值每js,将实际发送到服务器,而不仅仅是在视图中显示。至少不能这样做:

 $('#Title').attr('value', data);
 or
 $('#Title').val(data);

因为我不相信这是一个普遍的问题,我怀疑剑道时间表/模板在这里涉及。

如果你想知道为什么我要在第一个地方操作输入字段的值,事情是这样的:

我想使用自定义模板创建的时间表对应于一个事件。我想将日程表的默认值title设置为存储在event中的字段的值。由于调度模型和事件模型之间没有任何连接,因此我只能在调度模型被建立之后获得这个值。我认为我可以简单地从ajax请求所需的值并更新<input>,但我错了…

Kendo UI编辑表单通常依赖于编辑文本框来触发change事件以更新底层模型(数据项)。

如果您通过编程操作值,则手动触发change事件。

$("#Title").val(data).trigger("change");

另一方面,以编程方式更改模型值的正确方法是通过Kendo UI model的set方法。在打开编辑表单的场景中,您可以在Scheduler的edit事件中获得作为e.event的模型(事件)。

e.event.set("title", data);

最新更新