Javascript 获取对提交处理程序的访问权';KnockoutJS中的s事件对象
我已将ViewModel的Javascript 获取对提交处理程序的访问权';KnockoutJS中的s事件对象,javascript,knockout.js,Javascript,Knockout.js,我已将ViewModel的submitForm方法绑定到我的form元素,如下所示: <form action="#" method="post" data-bind="submit: submitForm"> 当我提交表单时,上面的处理程序会被触发,但是事件是未定义的。我以上述代码为基础,该代码说明如下: function ViewModel() { this.submitForm = function (data, event) { console.lo
submitForm
方法绑定到我的form
元素,如下所示:
<form action="#" method="post" data-bind="submit: submitForm">
当我提交表单时,上面的处理程序会被触发,但是事件
是未定义的
。我以上述代码为基础,该代码说明如下:
function ViewModel() {
this.submitForm = function (data, event) {
console.log(event); //undefined
};
}
ko.applyBindings(new ViewModel());
注意2:访问事件对象或传递更多参数
在某些情况下,您可能需要访问DOM事件对象
与您的单击事件关联。淘汰赛将通过该事件作为
函数的第二个参数,如本例所示:
点击我
var viewModel={
myFunction:函数(数据、事件){
if(事件移位键){
//当用户按下shift键时,执行不同的操作
}否则{
//做正常动作
}
}
);
应用绑定(视图模型);
注意:上面的语法错误是从KnockoutJS示例中逐字复制而来的。我认为这是一个错误,明显的更正应该会导致代码按文档所述工作
这个代码示例和文档中的引用尽可能地模仿了我上面写的内容。但是,事件
是未定义的
问题:
- 如何在提交处理程序中访问
对象事件
对于那些想知道我为什么要引用
click
绑定文档的人,我是从以下说明中得到指导的:
function ViewModel() {
this.submitForm = function (data, event) {
console.log(event); //undefined
};
}
ko.applyBindings(new ViewModel());
有关如何将其他参数传递给submit的信息,请参见
处理程序函数,或者在调用时如何控制此句柄
不在视图模型上的函数,请参见与
单击绑定。该页面上的所有注释都适用于提交处理程序
也是。
无法在提交
绑定处理程序中获取事件
对象
但是,您可以使用并手动订阅submit
事件:
<form method="post" action="#" data-bind="event: {'submit': submitForm}">
<input type="submit"/>
</form>
演示。来自
KO将表单元素作为参数传递给提交处理程序
功能
因此,您可能需要使用:
data bind=“event:{submit:submitForm}”
完美。我觉得奇怪的是,event
对象没有传递给submit
绑定,但是event
绑定也可以用于我的目的。谢谢!是的,但是文档中还声明:有关如何向提交处理程序函数传递其他参数,或如何在调用视图模型以外的函数时控制此句柄的信息,请参阅与单击绑定相关的说明。该页上的所有说明也适用于提交处理程序