2016-05-16 55 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',看看它是否仍然張貼,它不應該。 –