2014-03-24 22 views
0

我有一個asp.net C#應用程序。我有一個MaxLength設置爲3000的TextBox。當用戶達到3000的最大長度時,我想要一個JavaScript對話框打開並更改此用戶。我無法弄清楚如何去做。誰能幫我?謝謝。當用戶遇到TextBox的MaxLength時顯示對話框

+1

FWIW,你應該考慮一個「XX字左」的消息,類似於這裏所以評論系統。讓用戶鍵入他們想要的內容,但禁用提交按鈕,直到他們符合最大長度規則。當打字離開並且彈出一個警告框時會很惱人。 –

+0

我正在重寫一個經典的asp應用程序,它必須以完全相同的方式運行。所以我堅持了。 :) – hollyquinn

回答

0

aspdotnet-suresh

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Limit the number of characters in textbox or textarea</title> 
<script type="text/javascript"> 
function LimtCharacters(txtMsg, CharLength, indicator) 
{ 
    chars = txtMsg.value.length; 
    document.getElementById(indicator).innerHTML = CharLength - chars; 
    if (chars > CharLength) 
    { 
     txtMsg.value = txtMsg.value.substring(0, CharLength); 
    } 
} 
</script> 
</head> 
<body> 
<div style="font-family:Verdana; font-size:13px"> 
Number of Characters Left: 
<label id="lblcount" style="background-color:#E2EEF1;color:Red;font-weight:bold;">3000</label><br/> 
<textarea id="mytextbox" rows="5" cols="25" onkeyup="LimtCharacters(this,3000,'lblcount');"></textarea> 
</div> 
</body> 
</html> 
0

可以使用TextChanged事件的文本框的這一點。內部處理程序,你可以簡單地檢查TextBox.Text屬性的長度,並顯示一個消息框,如果它達到最大長度,像這樣:

Response.Write(string.Format("<script>alert('{0}');</script>", message)); 
+0

我試過這個,但是不能得到它的工作,我猜想有一些東西缺少,我不知道填充什麼。 – hollyquinn

0

可以限制與該JavaScript

<script language="javascript" type="text/javascript"> 
     function limitText(Field, limitNum) { 
      if (Field.value.length > limitNum) { 
       Field.value = Field.value.substring(0, limitNum); 
      } 
     } 
    </script> 


<asp:FormView runat="server"> 
    <ItemTemplate> 
     <b>Something</b> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" onKeyDown="limitText(this,3000);" 
      onKeyUp="limitText(this,3000);"></asp:TextBox> 
    </EditItemTemplate> 
</asp:FormView> 
的字符數

或顯示警報,

<input type="text" onkeydown="return testLength()" id="txtBox" /> 

function testLength(){ 
    var e = document.getElementById('txtBox'); 
    if(e.value.length>6) 
    { 
     alert('you have entered more than 3000 characters'); 
     // Set value back to the first 6 characters 
     e.value = e.value.substring(0, 3000); 
    } 
    return true; 
} 
+0

有沒有辦法做到這一點? – hollyquinn

+0

可能,防止用戶比顯示錯誤框更好。所以去第一個選項 – Sajeetharan

+0

我必須顯示一個錯誤框。我正在重寫一個經典網站。新人必須以與舊人一樣的方式表演。 – hollyquinn