【问题标题】:Blocking button when input textbox is empty asp.Net webforms当输入文本框为空时阻止按钮asp.Net webforms
【发布时间】:2016-05-16 22:53:00
【问题描述】:

我的页面上有一个按钮和文本控件。

<asp:TextBox ID="MyText" Width="100%" ClientIDMode="Static" runat="server"></asp:TextBox>
<asp:Button ID="MyButton" OnClientClick="isNotEmpty()" CssClass="btn btn-primary" OnClick="Send_Click" ClientIDMode="Static" CausesValidation="false" runat="server" />

如果页面上的文本框为空(或有空格),我正在尝试确保它不会触发 OnClick。我的代码不起作用,我不知道为什么。

function isNotEmpty() {
      if (<%= MyText.Text.Length %> > 0)
        return true;
       return false;
    }

我也试过了:

function isNotEmpty(){
  document.getElementbyId("MyText").value !== null || document.getElementbyId("MyText").value.match(/^\s*$/) === null
}

【问题讨论】:

    标签: javascript c# asp.net


    【解决方案1】:

    你需要在OnClientClick中使用return

    <asp:Button ID="MyButton" OnClientClick="return isNotEmpty();" CssClass="btn btn-primary" OnClick="Send_Click" ClientIDMode="Static" CausesValidation="false" runat="server" />
    

    【讨论】:

      【解决方案2】:

      您需要在客户端上找到MyText 控件,不幸的是它的名称不是"MyText"。它由服务器分配,并且可以根据周围的其他元素而有所不同。

      function isNotEmpty(){
         var textBox = document.getElementbyId("<%= MyText.ClientID %>");
         return textBox.value !== null || textBox.value.match(/^\s*$/) === null;
      }
      

      您还需要将 Agalo 的答案合并到 ASPX 文件中。

      OnClientClick="return isNotEmpty();"

      【讨论】:

      • 我这样做了,但 OnClick 仍然总是触发:(
      • 调试 JS 以确保它返回 false。在您的OnClientClick 中尝试return false;,看看它是否仍在发布,应该不会。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2015-06-04
      相关资源
      最近更新 更多