从javascript函数调用另一个javascript函数,返回false;?
我有一个简单的javascript函数,它调用其他2个函数:从javascript函数调用另一个javascript函数,返回false;?,javascript,asp.net,function,return,Javascript,Asp.net,Function,Return,我有一个简单的javascript函数,它调用其他2个函数: 函数mainformation(){ 职能1() 职能2() } 函数function1(){ if(//一些测试){ 警报(“测试功能1”); 返回false; } } 函数function2(){ if(//一些测试){ 警报(“测试功能2”); 返回false; } } 我这样调用main function(): 或者像这样: btntest是一个按钮,它只调用某个类,重定向到另一个页面 问题 如果我直接调用两个
函数mainformation(){
职能1()
职能2()
}
函数function1(){
if(//一些测试){
警报(“测试功能1”);
返回false;
}
}
函数function2(){
if(//一些测试){
警报(“测试功能2”);
返回false;
}
}
我这样调用main function()
:
或者像这样:
btntest
是一个按钮,它只调用某个类,重定向到另一个页面
问题
- 如果我直接调用两个函数中的任何一个
或function1()
,那么按钮将不会执行,这就是我想要的。但是……:function2()
当我调用
时,每个函数中的警报都起作用,但mainformation()
返回false代码>似乎不起作用,因为按钮不幸被执行
为什么呢?如何调用这两个函数并让它们的
返回false代码>工作?main函数
不返回任何内容,您没有使用function1
或function2
为了防止表单提交,您需要处理程序本身返回false,例如:
function mainfunction() {
function1();
function2();
return false; // prevent form submission
}
返回未定义的(在问题的示例中,您现在正在执行的操作)是不够的。main函数
不返回任何内容,您没有使用function1
或function2
的返回值
为了防止表单提交,您需要处理程序本身返回false,例如:
function mainfunction() {
function1();
function2();
return false; // prevent form submission
}
返回undefined(在问题的示例中,您现在正在执行的操作)是不够的。您的main函数
没有返回任何内容。试试这个:
function mainfunction() {
return function1() && function2();
}
如评论中所述,要使您的main函数
正常工作,您必须更改其他函数以始终返回true
或false
:
function function1() {
if (//some test) {
alert('test function1');
return false;
}
return true;
}
编辑
一个有趣的技巧是,两个函数都被执行,并且只有当两个函数都是true
时才返回true
:
function mainfunction() {
return (function1() + function2()) === 2;
}
您的main函数
没有返回任何内容。试试这个:
function mainfunction() {
return function1() && function2();
}
如评论中所述,要使您的main函数
正常工作,您必须更改其他函数以始终返回true
或false
:
function function1() {
if (//some test) {
alert('test function1');
return false;
}
return true;
}
编辑
一个有趣的技巧是,两个函数都被执行,并且只有当两个函数都是true
时才返回true
:
function mainfunction() {
return (function1() + function2()) === 2;
}
试试这个:
function mainfunction() {
return function1() && function2();
}
<asp:Button ID="btntest" runat="server" Text="test button" OnClientClick="mainfunction(); return false;" />
试试这个:
function mainfunction() {
return function1() && function2();
}
<asp:Button ID="btntest" runat="server" Text="test button" OnClientClick="mainfunction(); return false;" />
函数1
返回未定义的
或假
,而不是真
或假
undefined
不是真的,所以永远不会调用function2
。@icktoofay:好的,我应该说你必须通过返回true
来扩展你的函数。我会解决的。谢谢你的提示,谢谢Amberlamps和icktoofay。我尝试了解决方案:我更改了main函数和前面提到的其他2个函数,但不幸的是现在只调用了function1。谢谢大家,现在不管function1是否失败,都会调用function2。但是这让我有点不知所措,我真的不明白黑客的目的。我还注意到,除非我像这样调用main函数:返回main函数()
function1
返回未定义的或假,而不是真或假undefined
不是真的,所以永远不会调用function2
。@icktoofay:好的,我应该说你必须通过返回true
来扩展你的函数。我会解决的。谢谢你的提示,谢谢Amberlamps和icktoofay。我尝试了解决方案:我更改了main函数和前面提到的其他2个函数,但不幸的是现在只调用了function1。谢谢大家,现在不管function1是否失败,都会调用function2。但是这让我有点迷失了方向,我真的不明白黑客的目的。我还注意到,除非我像这样调用main函数,否则它不会工作:return main function()
谢谢AD7six,但结果并不总是错误的。不过,我明白你的意思了,谢谢你,main函数没有返回任何东西。谢谢你,AD7six,但是结果并不总是错误的。不过,谢谢你,因为我明白了你的意思,mainfunction没有返回任何内容。谢谢你的回答,它让我意识到在调用mainfunction()时我也必须使用return。但是mainfunction()并不总是返回false。感谢您的回答,这让我意识到在调用mainfunction()时也必须使用return。但是,mainfunction()并不总是返回false。