2010-04-06 44 views
0

我嘗試使用下面的腳本在asp.net:ASP.Net與JavaScript

<script language="javascript" type="text/javascript"> 
    function checktext() { 
     var txt = document.getElementById('tbComments'); 

     if (txt.Text.Length > 0) { 
      alert('Thank you for submitting feedback.'); 

      return true; 
     } 
     else { 
      alert('Sorry, you must enter text before submitting.') 

      return false; 
     } 
    } 
</script> 


    <asp:Button ID="btnSave" runat="server" Text="Submit" onclick="btnSave_Click" OnClientClick="checktext();" /> 

我一直在使用它的onclick事件試圖..腳本將只是沒有在所有的工作。

任何想法?

回答

0

您可以使用ClientID屬性獲取客戶端上控件的名稱。我建議你嘗試jQuery的所有這些雖然

var txt = document.getElementById('<%=tbComments.ClientID%>'); 

此外,具有的OnClientClick接收true或false值,以「知道」是否發送請求到服務器;所以你必須改變它像OnClientClick="return checktext();"

+0

編譯器錯誤消息:CS1061:'System.Web.UI.WebControls.TextBox'不包含'ClientId'的定義,也沒有接受'System.Web'類型的第一個參數的擴展方法'ClientId' .UI.WebControls.TextBox'可以找到(你是否缺少使用指令或程序集引用?) – tcables 2010-04-07 13:34:11

+0

您必須編寫ClientID,並在末尾輸入大寫D – 2010-04-07 14:04:45

0

嘗試調用它像這樣:

<asp:Button 
    ID="btnSave" 
    runat="server" 
    Text="Submit" 
    onclick="btnSave_Click" 
    OnClientClick="return checktext();" /> 

而且這一行看起來可疑,在Web窗體應用程序:

document.getElementById('tbComments'); 

確保您控制生成的ID不與別的東西前綴。

+0

我也嘗試過它沒有工作之前的回報。 – tcables 2010-04-07 13:35:50

0

替換:

<asp:Button ID="btnSave" runat="server" Text="Submit" onclick="btnSave_Click" OnClientClick="checktext();" /> 

有:

<asp:Button ID="btnSave" runat="server" Text="Submit" onclick="btnSave_Click" OnClientClick="return checktext();" /> 

替換:

var txt = document.getElementById('tbComments'); 

有了:

var txt = document.getElementById('<%= tbComments.ClientId %>'); 

HTH。

+0

ClientId不是它所說的文本框的一部分。 – tcables 2010-04-07 13:31:43

+0

應該是tbComments.ClientID – Sunny 2010-04-07 21:07:42

0

其他人提到OnClientClick所以我不會解決這個問題。

假設tbComments是某種形式的文本框,這條線

if (txt.Text.Length > 0) { 

是要失敗的,因爲文字是不是HTML輸入或文字區域的屬性,這是asp.net文本框的呈現方式。你想要的是

if (txt.value.length > 0) { 

另外,是否有一些原因,你沒有使用常規的asp.net RequiredFieldValidator控件?你做的工作比你需要的多。如果你絕對必須有警告框,你可以使用一個CustomValidator控件來調用你的函數(你必須調整它以適應模型)。

+0

Validator!非常好。但JavaScript問題仍然吸引我。 – tcables 2010-04-07 13:34:59