submit - knockout.js 基本提交绑定(bind)问题

标签 submit knockout.js

所以我使用简单的提交绑定(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?");
        }
    }
};

Heres the working fiddle

仅供引用 - 您的初始代码/标记有一些错误,缺少分号,我修复了不正确的标记。

希望这对您有所帮助。

关于submit - knockout.js 基本提交绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878152/

相关文章:

javascript - 为什么 afterRender 上 $(element).offset().top == 0 ?

javascript - HTML javascript 从输入中获取值

jquery - 无法使用 jQuery 提交按钮淡出 div

ios - 访问 dxList 中 ViewModel 中的值 - PhoneJS

jquery - KnockoutJS JQuery 组合框绑定(bind)

javascript - 剑道击倒 : re-bind column template

jquery - 将大型 JSON 对象发布到 ASP.NET MVC

python - 使用python mechanize提交数据

jquery - 如果使用.remove(),表单将无法提交?

javascript - jQuery $(form).submit() 仅针对 IE(MVC3 应用程序)不触发