function checkData() {
            if (document.getElementById("<%= txtContact.ClientID %>").value == "") {
                alert("联系人姓名不能为空!");
                document.getElementById("txtContact").focus();
                return false;
            }
            else {
                return true;
            }            if (document.getElementById("<%= txtMobile.ClientID %>").value == "") {
                alert("联系人手机号不能为空!");
                document.getElementById("txtMobile").focus();
                return false;
            }
            else {
                return true;
            }
}
<asp:Button ID="btnOK" runat="server" Text="提交数据" OnClientClick="return checkData()"    OnClick="btnOK_Click" />
protected void btnOK_Click(object sender, EventArgs e)
        {
            Response.Write("<script>alert('后台')<script>");
        }
我想要的是当点击‘提交数据’按钮后先执行JS“checkData()”如返回false则不执行后台的“btnOK_Click”也不刷新页面,如true则执行该方法。

解决方案 »

  1.   

    if (document.getElementById("控件ID" == "") 
      

  2.   

    JS可以简化为function checkData() {
                if (document.getElementById("<%= txtContact.ClientID %>").value == "") {
                    alert("联系人姓名不能为空!");
                    document.getElementById("txtContact").focus();
                    return false;
                }
                if (document.getElementById("<%= txtMobile.ClientID %>").value == "") {
                    alert("联系人手机号不能为空!");
                    document.getElementById("txtMobile").focus();
                    return false;
                }
                    return true;
    }
    按钮本来就是先执行onClientClick事件的
      

  3.   

    这个我也想过的,我的问题是要是JS返回false则不刷新页面,而我的返回false还是刷新页面
      

  4.   

    if (document.getElementById("txtContact").value == "")
      

  5.   

    你可以在各个if下面放alert进行调试就知道哪里出错了,还有你下面的
    document.getElementById("txtMobile").focus();
    document.getElementById("txtContact").focus();这两句有错,ID不对,ClientID,和你判断时候的一样应写成function checkData() {
    var Contact=document.getElementById("<%= txtContact.ClientID %>");
    var Mobile=document.getElementById("<%= txtMobile.ClientID %>");
                if (Contact.value == "") {
                    alert("联系人姓名不能为空!");
                    Contact.focus();
                    return false;
                }
                if (Mobile.value == "") {
                    alert("联系人手机号不能为空!");
                    Mobile.focus();
                    return false;
                }
                    return true;
    }
      

  6.   

    function checkData() {
                if (document.getElementById("txtContact").value == "") {
                    alert("联系人姓名不能为空!");
                    document.getElementById("txtContact").focus();
                    return false;
                }
                if (document.getElementById("txtMobile").value == "") {
                    alert("联系人手机号不能为空!");
                    document.getElementById("txtMobile").focus();
                    return false;
                }
                else {
                    return true;
                }
    }你可以在<form onsubmit="return checkData()">试下
      

  7.   

    function checkData() {
                if (document.getElementById("<%= txtContact.ClientID %>").value == "") {
                    alert("联系人姓名不能为空!");
                    document.getElementById("txtContact").focus();
                    return false;
                }
                if (document.getElementById("<%= txtMobile.ClientID %>").value == "") {
                    alert("联系人手机号不能为空!");
                    document.getElementById("txtMobile").focus();
                    return false;
                }
          return true;
    }
      

  8.   


      最后 return true;
      

  9.   


    JS里用一个if...else if  elseelse里再return true
      

  10.   

    你这个方法是对的,要是JS返回false则不刷新页面,问题又来啦,返回true的话它不执行后台的btnOK_Click这个事件啦!
      

  11.   

    不要写 OnClientClick="return checkData()"    。。后台 page_load 事件里写
    BtnOK.Attributes.Add("onclick","return checkData();");
      

  12.   

    在七楼代码下面的
    return true;
    下面再加句
    alert("我跑到底了");
    看看这句alert会不会弹出来,弹不出来说明js有误,既然返回true了没有理由不执行后台的
      

  13.   

    还有,你下面的cs代码有误
    protected void btnOK_Click(object sender, EventArgs e)
            {
                Response.Write("<script>alert('后台')<script>");
            }script的结束标签少"/"
      

  14.   


     <script type="text/javascript">
            function check() {
                var result = false;
                if (document.getElementById("txtContact").value.trim() == "") {
                    alert("联系人姓名不能为空!");
                    document.getElementById("txtContact").focus();
                    result = false;
                    return result;
                }
                else {
                    result = true;
                }            if (document.getElementById("txtMobile").value.trim() == "") {
                    alert("联系人手机号不能为空!");
                    document.getElementById("txtMobile").focus();
                    result = false;
                }
                else {
                    result = true;
                }
                return result;
            }        String.prototype.trim = function() {
                return this.replace(/(^\s*)|(\s*$)/g, '');
            }    </script> <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="txtContact" runat="server"></asp:TextBox>
            <asp:TextBox ID="txtMobile"
                runat="server"></asp:TextBox>        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        </div>
        </form>  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Button1.Attributes.Add("onclick", "return check()");
            }
            
       
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('执行后台!');", true);
        }
    经测试 完全可以
      

  15.   

    谢谢你问题解决啦!是我的大意script的结束标签少"/",再次谢谢!
      

  16.   

    最简单的js写法:
    $(function(){
     $("#btnOK").click(function () {
          //得到文本框的值
            var uname = $("#文本框的id").val();
             if (uname == "") {
                alert("对不起,用户名不能为空!");
                return;
            }
    })
    })
    function checkData() {
                if (document.getElementById("<%= txtContact.ClientID %>").value == "") {
                    alert("联系人姓名不能为空!");
                    document.getElementById("txtContact").focus();
                    return false;
                }
                else {
                    return true;
                }            if (document.getElementById("<%= txtMobile.ClientID %>").value == "") {
                    alert("联系人手机号不能为空!");
                    document.getElementById("txtMobile").focus();
                    return false;
                }
                else {
                    return true;
                }
    }