我有这个简单的 javascript 函数,它调用其他 2 个函数:
<script type="text/javascript" language="javascript">
function mainfunction() {
function1()
function2()
}
function function1() {
if (//some test) {
alert('test function1');
return false;
}
}
function function2() {
if (//some test) {
alert('test function2');
return false;
}
}
</script>
我像这样调用mainfunction()
:
<form id="form1" runat="server" onSubmit="return mainfunction()">
或者像这样:
<asp:Button ID="btntest" runat="server" Text="test button" OnClientClick="return mainfunction()" />
btntest
是一个按钮,它只调用一些重定向到另一个页面的类。
问题
- 如果我直接调用 2 个函数
function1()
或function2()
中的任何一个,那么按钮将不会被执行,这正是我想要的。但是...:
当我调用mainfunction()
时,每个函数中的警报都会起作用,但return false;
似乎不起作用,因为不幸的是按钮被执行了。
这是为什么呢?我怎样才能调用这两个函数并让它们return false;
工作?
最佳答案
您的mainfunction
没有返回任何内容。试试这个:
function mainfunction() {
return function1() && function2();
}
正如评论中提到的,要让您的 mainfunction
正常工作,您必须更改其他函数以始终返回 true
或 false
:
function function1() {
if (//some test) {
alert('test function1');
return false;
}
return true;
}
编辑
一个有趣的技巧是,仅当两个函数都为 true
时,才执行两个函数并且仍然返回 true
:
function mainfunction() {
return (function1() + function2()) === 2;
}
关于javascript - 从一个 JavaScript 函数调用另一个具有 return false 的 JavaScript 函数;?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190987/