我有一个文本框和一个按钮,我想在单击按钮时将文本框的值发送到一个函数,但我似乎无法理解。
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/