允许在提交前对表单进行验证, 我想从我定义的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
};
这可能吗? 先谢谢。
答案 0 :(得分:2)
验证成功后,请确保绑定处理程序中的return true
:
this.viewModel.BaseSubmit =
function(formElements) {
if (/* validation is successful */) {
return true;
} else {
/* handle validation errors */
}
};
示例: http://jsfiddle.net/CCNtR/22/
默认情况下,Knockout会阻止事件采取任何默认操作。例如,如果使用事件绑定来捕获输入标记的keypress事件,则浏览器将仅调用处理函数,并且不会将键的值添加到input元素的值。一个更常见的例子是使用click绑定,它在内部使用此绑定,您的处理程序函数将被调用,但浏览器不会导航到链接的href。这是一个有用的默认设置,因为当您使用点击绑定时,通常是因为您使用链接作为操纵视图模型的UI的一部分,而不是作为到另一个网页的常规超链接。
但是,如果您确实要让默认操作继续,只需从事件处理函数返回true