【问题标题】:Prevent page from posting back from JavaScript [duplicate]防止页面从 JavaScript 发回 [重复]
【发布时间】:2012-09-05 17:50:35
【问题描述】:

可能重复:
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;
   }

该页面仍未回发。

【问题讨论】:

  • 我认为如果框文本为空则需要返回true

标签: javascript asp.net .net postback


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    <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 函数,并且当文本框具有值时不返回任何值,这就是它卡住的原因

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

    【讨论】:

      【解决方案3】:

      如果验证通过,您忘记返回 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
          } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-18
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        相关资源
        最近更新 更多