我有这样的HTML:
<form data-bind="submit: mySubmit>
<input type="text" ...
我想在提交时访问输入值:
mySubmit = function() {
var textValue = ???;
alert(textValue);
}
我该怎么做?我可以在文本字段中提供一种ID,但我不希望这个ID是全局的(例如,我可能在一个页面上有几个这样的表单)。
答案 0 :(得分:2)
如果您从Knockout视角查看它,那么您真的希望在视图模型中显示您的输入值。这意味着在您的输入中添加data-bind="value: myValue"
。然后,您可以使用mySubmit
方法从视图模型中访问它。
类似于:http://jsfiddle.net/rniemeyer/sAyET
我不推荐它,但是提交方法实际上是在Knockout的第一个参数中传递了form元素(它实际上应该传递当前的数据和事件,但目前它是元素)。
所以,你可以这样做:http://jsfiddle.net/rniemeyer/sAyET/1/。理想情况下,您的视图模型不应该对其中的DOM /视图进行任何引用,因此除非绝对必要,否则我不建议使用此选项。