我有一个函数searchKeyboardCmd
,它被绑定为文本框的事件处理程序。
其目的是检查该文本框中的数据是否唯一。如果不是,它应该破坏此处理程序的执行并显示警报窗口。如果是唯一的,它应该从其他texbox获取数据并将其存储在数组中(代码片段来自`var a = new())
self.searchKeyboardCmd = function (data, event) {
if (event.keyCode == 13) { //checking if enter was pressed or other key
foo(function (result) {
if (result == 'false') {
alert("Numer seryjny nie jest unikalny");
return true;
}
});
var a = new Eq();
a.StorageId(self.StorageTemp());
a.StartDate(self.StartDateTemp());
a.DeviceSerialNumber(self.Test());
a.DeviceId(self.DeviceTemp());
a.Issue(self.Issue())
a.IssueDesc(self.IssueDesc());
a.Quantity(self.number());
a.Project(self.Project());
a.MeUser(self.MeUser());
self.data.push(a);
$('.datepicker').datepicker({ autoclose: true, todayHighlight: true/*, language: "pl"*/, format: 'dd/mm/yyyy' });
deviceIdField.focus();
self.Test("");
return false;
}
return true;
};
我的foo函数回调结束方法。如果它是唯一的,它会从中收到。错误的其他方式。
function foo(callback) {
$.ajax({
url: "/DeviceInstance/IsUnique",
contentType: "application/json; charset=utf-8",
type: "POST",
datatype: "json",
data: JSON.stringify({ value: viewModel.Test() }),
error: function (data) {
alert("Dodanie nie powiodło się " + data);
},
success: function (data) {
callback(data);
}
});
所以我的问题是打破我的主事件处理程序方法的执行。 我尝试修改这一行:
self.searchKeyboardCmd = function (data, event,callback)
和
foo(function (result) {
console.log(result);
callback(result);
});
我得到的唯一回应是:undefined is not a function
答案 0 :(得分:0)
试试这个:
var f = foo(function (result) {
if (result == 'false') {
alert("Numer seryjny nie jest unikalny");
return true;
}
});
if(!f){
return; // (Or return true or false)
}
如果f()
返回false
,则函数调用下面的代码将不会被执行,如果它返回true
,它将是。