1

为了允许在提交之前验证表单,我想从我定义的 Submit 方法进行简单的 HTTP POST 提交。

视图代码:

   <form data-bind="submit: BaseSubmit" id="FormId">
      <!-- Some rows ... -->
      <button type="submit">Create</button>
   </form>

以及 JS 的行为

this.viewModel.BaseSubmit = 
   function(formElements) {
      //Here the code to make the submit redirection
    };

这可能吗 ?提前谢谢。

4

1 回答 1

2

成功验证后,请确保并return true从您的绑定处理程序:

this.viewModel.BaseSubmit = 
    function(formElements) {
        if (/* validation is successful */) {
            return true;
        } else {
            /* handle validation errors */
        }
    };

示例:http: //jsfiddle.net/CCNtR/22/

文档中

默认情况下,Knockout 将阻止事件采取任何默认操作。例如,如果您使用事件绑定来捕获输入标签的按键事件,浏览器将只会调用您的处理函数,并且不会将键的值添加到输入元素的值中。一个更常见的示例是使用 click 绑定,它在内部使用此绑定,您的处理程序函数将被调用,但浏览器不会导航到链接的 href。这是一个有用的默认值,因为当您使用点击绑定时,通常是因为您将链接用作操作视图模型的 UI 的一部分,而不是作为指向另一个网页的常规超链接。

但是,如果您确实想让默认操作继续进行,只需从事件处理函数返回 true

于 2013-04-04T14:19:12.937 回答