为什么单击提交时 kendoForm 会触发两次?

Why does kendoForm fire twice when clicking submit?

如果在 domReady 之后的 kendoForm 中使用 setOptions 设置了 formData,那么单击一次提交会触发两次。

form.setOptions({
 formData : { ID: 2, Name: "Tom", Address: "Berlin" }
});

我的示例代码:kendoForm example

首先按下提交按钮 => 提交触发。

第二次按下添加 FormData 按钮,然后按下提交 => 提交触发两次。

setOptions 提交后触发两次是我的错误吗?

所描述的行为与此处记录的表单中的已知问题有关:

https://github.com/telerik/kendo-ui-core/issues/5854

作为官方修复解决问题之前的临时解决方法,您可以使用覆盖 _setEvents 函数,如下所示:

<script>
        kendo.ui.Form.fn._setEvents = function() {
          var that = this,
              validator = that.validator;

          validator
            .bind("validateInput", $.proxy(that._validateField, that))
            .bind("validate", $.proxy(that._validate, that));

          that.wrapper
            .on("submit.kendoForm", $.proxy(that._submit, that))
            .on("clear.kendoForm", $.proxy(that._clear, that))
            .on("click.kendoForm", ".k-form-clear", $.proxy(that._clear, that));

          that._model.bind("change", $.proxy(that._change, that));
        }
      </script>

Here is a working Dojo example 为了您的方便。