如何在knockoutjs中访问表单输入

时间:2011-12-28 12:45:40

标签: javascript jquery knockout.js

我有这样的HTML:

<form data-bind="submit: mySubmit>
  <input type="text" ...

我想在提交时访问输入值:

mySubmit = function() {
  var textValue = ???;
  alert(textValue);
}

我该怎么做?我可以在文本字段中提供一种ID,但我不希望这个ID是全局的(例如,我可能在一个页面上有几个这样的表单)。

1 个答案:

答案 0 :(得分:2)

如果您从Knockout视角查看它,那么您真的希望在视图模型中显示您的输入值。这意味着在您的输入中添加data-bind="value: myValue"。然后,您可以使用mySubmit方法从视图模型中访问它。

类似于:http://jsfiddle.net/rniemeyer/sAyET

我不推荐它,但是提交方法实际上是在Knockout的第一个参数中传递了form元素(它实际上应该传递当前的数据和事件,但目前它是元素)。

所以,你可以这样做:http://jsfiddle.net/rniemeyer/sAyET/1/。理想情况下,您的视图模型不应该对其中的DOM /视图进行任何引用,因此除非绝对必要,否则我不建议使用此选项。