单击按钮调用多个JavaScript函数

ACP*_*ACP 16 javascript function

如何在按钮点击事件上调用多个函数?

这是我的按钮,

<asp:LinkButton
    ID="LbSearch"
    runat="server"
    CssClass="regular"
    onclick="LbSearch_Click"
    OnClientClick="return validateView();ShowDiv1();">
Run Code Online (Sandbox Code Playgroud)

但我ShowDiv1没有被称为......

我的JavaScript功能:

function ShowDiv1() {
    document.getElementById("ReportDiv").style.display = 'block';
    return false;
}

function validateView() {

    if (document.getElementById("ctl00_ContentPlaceHolder1_DLCategory").selectedIndex == 0) {
        document.getElementById("ctl00_ContentPlaceHolder1_ErrorMsg").innerHTML = "Please Select Your Category";
        document.getElementById("ctl00_ContentPlaceHolder1_DLCategory").focus();
        return false;
    }
    if (document.getElementById("ctl00_ContentPlaceHolder1_DLEmpName").selectedIndex == 0) {
        document.getElementById("ctl00_ContentPlaceHolder1_ErrorMsg").innerHTML = "Please Select Your Employee Name";
        document.getElementById("ctl00_ContentPlaceHolder1_DLEmpName").focus();
        return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

如果ValidateView()函数返回true,我应该调用ShowDiv1().

Joh*_*n K 28

因为您从第一个方法调用返回,所以第二个不执行.

尝试类似的东西

OnClientClick="var b = validateView();ShowDiv1(); return b"
Run Code Online (Sandbox Code Playgroud)

或扭转局面,

OnClientClick="ShowDiv1();return validateView();"
Run Code Online (Sandbox Code Playgroud)

或者如果div1对验证例程有依赖关系.

OnClientClick="var b = validateView(); if (b) ShowDiv1(); return b"
Run Code Online (Sandbox Code Playgroud)

最好的方法是将多个内联语句封装到这样的迷你函数中,以简化调用:

// change logic to suit taste
function clicked()  {
    var b = validateView(); 
    if (b) 
        ShowDiv1()
    return b;
}
Run Code Online (Sandbox Code Playgroud)

然后

OnClientClick="return clicked();"
Run Code Online (Sandbox Code Playgroud)