Javascript 如何从子方法断开父函数
我有一个函数Javascript 如何从子方法断开父函数,javascript,Javascript,我有一个函数searchKeyboardCmd,它作为事件处理程序绑定到文本框。 其目的是检查文本框中的数据是否唯一。如果没有,则应中断此处理程序的执行并显示警报窗口。如果是唯一的,它应该从其他texbox获取数据并将其存储在数组中(第`var a=new()行的代码片段) 我的foo函数调用了后端方法。如果它是唯一的,那么它从它那里接收到的信息是真实的。错误的其他方式 function foo(callback) { $.ajax({ url: "/DeviceInst
searchKeyboardCmd
,它作为事件处理程序绑定到文本框。
其目的是检查文本框中的数据是否唯一。如果没有,则应中断此处理程序的执行并显示警报窗口。如果是唯一的,它应该从其他texbox获取数据并将其存储在数组中(第`var a=new()行的代码片段)
我的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)
及
我得到的唯一回应是:未定义不是函数
试试这个:
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()。如果foo
没有返回true,那么会发生什么呢?如果为true,那么下面添加到数据数组的所有代码都应该执行如果为false,那么这应该停止,您不能这样做。你必须重新构造你的代码searchKeyboardCmd
必须接受回调,就像foo
一样。虽然重构我的foo函数非常简单,但我不知道如何更改searchKeyboardCmd
并且仍然接受事件和数据作为参数,因为您甚至不必依赖于返回值的实际用途。但如果没有更多的上下文信息,我们就无法真正给出一个具体的解决方案。这不能作为基于ajax调用输出的结果。因此,如果在f更改值之前检查(!f)undefined@szpic:你为什么不提一下foo
发出了一个AJAX调用--这完全改变了问题。我想道歉。当我意识到我并没有提出问题时,我更新了这个问题。
foo(function (result) {
console.log(result);
callback(result);
});
var f = foo(function (result) {
if (result == 'false') {
alert("Numer seryjny nie jest unikalny");
return true;
}
});
if(!f){
return; // (Or return true or false)
}