敲除从输入到函数的发送值

knockout send value from input to function

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

      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>

视图模型中的函数

   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 在获取时变为空

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

首先,为了 return 来自输入字段的值,应该使用 value 绑定而不是 `text:

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

那么理想情况下,您的点击处理程序应该在您的视图模型中调用函数,然后它可以获得可观察变量的值 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>

你的视图模型是这样的:

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