javascript - knockout 从输入到函数的发送值

标签 javascript html asp.net-mvc-4 knockout.js asp.net-web-api

我有一个文本框和一个按钮,我想在单击按钮时将文本框的值发送到一个函数,但我似乎无法理解。

      Reg:<input type="text" placeholder="Enter Reg" data-bind="text: search"  />
<button  class="btn btn-danger" data-bind="click: function () { GJobs(search) }" >Get Jobs</button>

View 模型中的函数

   self.GJobs = function (search) {
        GetJobs(search)
    }

ajax调用

   function GetJobs(search) {
        $.ajax({
            type: "GET",
            url: 'api/mechanicphone',
            data: { reg: search},
            dataType: 'json',
            contentType: 'application/json',
            success: function (data) {
                self.Jobs(data);
            },
            error: function (data) {
                $('#MechMobile').html('<h3>Error in retrieval</h3>');
            }
        });
    }

当我调试时,传递的 reg 在 get 上变为 null

最佳答案

您的代码中有一些内容需要更改。

首先,为了从输入字段返回值,应该使用 value 绑定(bind)而不是 `text:

<input type="text" placeholder="Enter Reg" data-bind="value: search"  />

那么理想情况下,您的点击处理程序应该在您的 View 模型中调用函数,然后它可以获得可观察变量 search 的值。总的来说,您可以像这样更新您的 HTML 代码:

Reg:<input type="text" placeholder="Enter Reg" data-bind="value: search"  />
<button  class="btn btn-danger" data-bind="click: GJobs" >Get Jobs</button>

你的 View 模型是这样的:

self.GJobs = function () {
    GetJobs(self.search());
}
self.search = ko.observable('');
function GetJobs(searchValue){
    // Call web service
}

关于javascript - knockout 从输入到函数的发送值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28381353/

相关文章:

javascript - 连接在收到握手响应之前关闭 WebSocket

javascript - 我怎样才能获得在discord.js中作为消息发布的值(value)

javascript - 用键盘控制视频播放器

javascript - 仅控制多个电子邮件域的正则表达式

javascript - 在 jQuery 中添加或删除类

javascript - 在 JavaScript 和 vxml 中使用多个转接号码

javascript - Chromecast 接收器应用程序不显示自定义字体

jquery - AJAX 文件上传 - HttpPostedFileBase 参数始终为 null MVC 4

angularjs - 将部分 View 加载到主视图 AngularJS

asp.net-mvc - 许多 Controller 会降低性能吗? MVC