阻止页面从JavaScript发回

时间:2012-09-05 17:50:35

标签: javascript asp.net .net postback

  

可能重复:
  prevent postback of HtmlButton in C#

这是我的JavaScript函数:

<script type = "text/javascript">
    function CheckForEmptySearchBox(id) {
        var index = id.substring(id.length - 1);
        var boxContent = document.getElementById("contentMain__lvTSEntry__txtClientName_" + index).value;
        if (boxContent == "") {
            alert("Please enter search criteria");
            return false;
        }
    }
</script>

标记:

<asp:Button ID="_btnSearch" runat="server" OnClientClick = "return CheckForEmptySearchBox(this.id)" />

此代码正常工作,即当texbox为空时,该消息提示用户输入搜索条件,并且javascript阻止页面回发。但是,当用户输入文本时,没有消息提示,但页面仍然没有回发。怎么了?

修改

if (boxContent == "") {
     alert("Please enter search criteria");
     return false;
   }
   else {
     return true;
   }

该页面仍未回复。

3 个答案:

答案 0 :(得分:2)

如果你的意思是返回true,你需要从你的函数返回true ....

答案 1 :(得分:1)

<script type = "text/javascript">
        function CheckForEmptySearchBox(id) {
            var index = id.substring(id.length - 1);
            var boxContent = document.getElementById("contentMain__lvTSEntry__txtClientName_" + index).value;
            if (boxContent == "") {
                alert("Please enter search criteria");
                return false;
            }
else{ return true;}
        } 

你要求返回onclientclick函数,并且当textbox具有值为什么卡住的文本框时不返回任何值

  <asp:Button ID="_btnSearch" runat="server" OnClientClick = "return CheckForEmptySearchBox(this.id)" />

答案 2 :(得分:1)

如果验证通过,您将忘记返回true:

function CheckForEmptySearchBox(id) {
        var index = id.substring(id.length - 1);
        var boxContent = document.getElementById("contentMain__lvTSEntry__txtClientName_" + index).value;
        if (boxContent == "") {
            alert("Please enter search criteria");
            return false;
        }

     return true; //<--you forgot this
    }