我们Button的OnClick事件调用服务器端代码。使用OnClientClick事件调用客户端代码。代码如下:


<asp:Button ID="btnSave" runat="server" CssClass="btn" OnClick="btnSave_Click" Text="保 存" OnClientClick="return checkControl();" />


说明:btnSave_Click为服务器端保存事件。

    checkControl()为保存前在前端用js进行检查的js方法,js代码如下。


    function checkControl()

    {

        var vApyName=document.getElementById("txbApyName").value;

        if(vApyName.length<=0)

        {

            alert("'申请人姓名'不能为空!");

            document.getElementById("txbUrlList").focus();

            document.getElementById("txbUrlList").select();

            return false;

        }

    }



注:

   为什么要在OnClientClick事件中加上return?

   因为开始时,我并没有加上return语句,发现执行完js方法后仍然执行后台的click事件。原来的代码如下:


<asp:Button ID="btnSave" runat="server" CssClass="btn" OnClick="btnSave_Click" Text="保 存" OnClientClick="checkControl();" />



总结:

  用 OnClientClick验证我们的提交数据时,一定要返回ture或者false,即一定要加上return,否则OnClick失效。 当返回false时OnClick服务器端事件才被中止。