在Knockout中进行标准的POST表单验证

时间:2013-04-04 12:37:23

标签: mvvm knockout.js

允许在提交前对表单进行验证, 我想从我定义的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
    };

这可能吗? 先谢谢。

1 个答案:

答案 0 :(得分:2)

验证成功后,请确保绑定处理程序中的return true

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

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

来自the documentation

  

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

     

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

相关问题