所以我使用简单的提交绑定(bind)来传递函数数据:
<form data-bind="submit: printTest">
Enter a weight in the box: <BR>
<INPUT TYPE="text" id="inputWeight" VALUE=""><P>
<button type="submit">Submit</button>
</form>
我刚开始使用 KO,所以我要编写一个基本的打印函数来测试这个输入:
self.printTest = function(xxx){
var myTextField = xxx;
if(myTextField.value != "")
alert("You entered: " + myTextField.value)
else
alert("Would you please enter some text?")
}
我的问题是当我点击提交时我得到一个“你输入:未定义”但是当我刷新页面时表单中的输入得到一个警告。这是非常令人沮丧的! idk 如果这是一个 knockout 问题或一个简单的 HTML 问题。
最佳答案
您没有显示所有代码,所以我会尝试根据以上内容来回答这个问题。首先是submit binding在提交表单时简单地执行一个函数,并允许您停止/确认表单应该提交。
当提交触发时,它传递给表单 dom 元素,而不传递输入值,因此此代码永远无法工作。
要打印输入值,您首先需要将输入值绑定(bind)到模型上的值。
<input type="text" id="inputWeight" value="" data-bind="value: inputWeight" />
然后您可以像这样提醒该值。
var viewModel = function () {
var self = this;
self.inputWeight = ko.observable();
self.printTest = function() {
var valueEntered = self.inputWeight();
if(valueEntered) {
alert("You entered: " + valueEntered);
}
else {
alert("Would you please enter some text?");
}
}
};
仅供引用 - 您的初始代码/标记有一些错误,缺少分号,我修复了不正确的标记。
希望这对您有所帮助。
关于submit - knockout.js 基本提交绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878152/