当你使用submit绑定的时候, Knockout会阻止form表单默认的submit动作。换句话说,浏览器会执行你定义的绑定函数而不会提交这个form表单到服务器上。可以很好地解释这个,使用submit绑定就是为了处理view model的自定义函数的,而不是再使用普通的HTML form表单。如果你要继续执行默认的HTML form表单 *** 作,你可以在你的submit句柄里返回true。
例子
隐藏代码
<form data-bind="submit: doSomething">
... form contents go here ...
<button type="submit">
Submit
</button>
</div>
<script type="text/javascript">
var viewModel = {
doSomething: function(formElement) { // ... now do something}}
</script>
这个例子里,KO将把整个form表单元素作为参数传递到你的submit绑定函数里。 你可以忽略不管,但是有些例子里是否有用,参考:ko.postJson工具。
为什么不在submit按钮上使用click绑定?
在form上,你可以使用click绑定代替submit绑定。不过submit可以handle其它的submit行为,比如在输入框里输入回车的时候可以提交表单。
参数
主参数
你绑定到submit事件上的函数
你可以声明任何JavaScript函数 – 不一定非要是view model里的函数。你可以声明任意对象上的任何函数,例如: submit: someObject.someFunction。
View model上的函数在用的时候有一点点特殊,就是不需要引用对象的,直接引用函数本身就行了,比如直接写submit: doSomething就可以了,而无需写成: submit: viewModel. doSomething(尽管是合法的)。
其它参数
无
备注:
可以啊<form method="post" action="xxx.action">--在这可以修改Action的路径
<input type="sumbit"/>
</form>
如果不想这样提交的话就用javascript来 *** 作
执行sumbit的时候触发javascript事件
<form method="post">--在这可以修改Action的路径
<input type="sumbit" onclick="Action()"/>
</form>
function Action(){
window.location.href='xxx.action'
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)