2016-05-16 46 views
0

我的页面上有一个按钮和文本控件。输入文本框为空时的阻止按钮asp.Net webforms

<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 
} 

回答

1

您需要OnClientClick

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

使用return你需要找到客户端上的MyText控制,不幸的是它的名字是不是"MyText"。它由服务器分配,并且可以根据围绕它的其他元素而有所不同。

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

您还需要将Agalo的答案纳入ASPX文件。

OnClientClick="return isNotEmpty();"

+0

我这样做,但仍的OnClick始终闪光:( – cAMPy

+0

调试的JS,以确保它返回false尝试'返回false;'在'OnClientClick',看看它是否仍然张贴,它不应该。 –