JavaScript中onclick事件的两个函数?

3
<a href="#" type="image"  class="topopup"  onclick="ShowDIV3();"  >Click Here</a>

在这段代码中,我需要执行另一个函数,例如验证函数。只有当该函数返回true时,下一个函数才会运行,否则不会运行。能有人帮忙吗?
8个回答

5
尝试这段代码:

试试这段代码:

<a href="#" type="image"  class="topopup"  onclick="if (ShowDIV3()) {myotherfunction()}">Click Here</a>

if(whatever == true)if(whatever)完全等价。如果您真的想检查是否为true(即不是像1"some text"等评估为true的东西),请使用if(whatever === true) - Bart
1
这个应该真的从HTML中重构出来。 - Willem D'Haeseleer
1
@LucasWillems 是的,测试 == true 可以工作,但是相当无意义,因为 if 语句已经将其条件求值为布尔值。== 运算符相当松散(或者说“有帮助”),在某些情况下可能会很危险。例如,1 == true 将求值为 true,而 1 === true 将求值为 false,这可能是大多数比较情况下您想要的结果。请记住这一点。 - Bart
感谢您的解释。 - Lucas Willems

1
在jQuery中,您可以像这样操作,这也将允许多个处理程序和更好的事件规范化以及改进的关注点分离。
$(".topopup").on("click", function(){
     if (ShowDIV3()){
         OtherStuff();
     }
});

1
在您的showDIV3()函数末尾添加类似以下内容的代码:
function showDIV3()
{
    // Your process, and then at the end,

    if(result)
    {
        // Call the other function
    }
    else 
    {
       // Return false
    }
}

1
尝试像这样。
<a href="#" type="image"  class="topopup"  onclick="ShowDIV3();"  >Click Here</a>

function ShowDIV3() {
    if(true)   //Here can use condition for validation
       another_fun();
    else
       return false;
}

在您的showDIV3函数中,当条件为真时调用另一个函数。

1
似乎他们刚刚获得了125个声望值:P。继续前进吧兄弟,继续回答问题。 - Suresh Atta

1

尝试使用这种方式

onclick=" if (ValidateFunction()) return ShowDIV3();"

0

为什么要返回并执行?为什么不直接执行?

  function  ShowDIV3(){


      -----

    if(resultBoolean){
     proceedToanotherFunc();

    }

    }

在我看来,这样做会更易读,而不是在 HTML 中编写逻辑。


0

只需在您的JavaScript中创建更多语句即可

function ValidateStatments() {

    var val = document.getElementById("Value 1").value;
    var val2 = document.getElementById("Value 2").value;


    if(val != "Value 1"){
        return false;
     }
    else if (val2 != "Value2){
        return false;
    }
return true;
}

在您的链接上添加您的 JavaScript,以便如果它为真,则允许用户执行操作 onclick="return ValidateStatments();"


0
ShowDIV3()函数中进行验证,根据验证结果从ShowDIV3()函数内部调用下一个函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接