2013-02-08 30 views
0

我有一個文本框,其中用戶插入了SSN號碼,TexBox有一個default value as 'XX-XX-',然後他在'XX-XX-'之後輸入四位數字。我有JavaScript,但是當他按下標籤TexBox中的文本時,即選中「XX-XX-」並刷新所有選定的文本。我想限制它只能在'XX-XX-'後面輸入eg: XX-XX-1234怎麼辦?如何在asp.net中按Tab鍵時限制輸入的類型?

.aspx頁面中:

<asp:TextBox ID="txtInsuredSSN" runat="server" Text="XX-XX-" MaxLength="10" onkeydown="return validateSSN(event);" /> 

的Javascript:

function validateSSN(key) { 

      //getting key code of pressed key 
      var keycode = (key.which) ? key.which : key.keyCode; 
      var phn = document.getElementById('<%#txtInsuredSSN.ClientID %>'); 
      if (phn.selectionStart < 6) 
       return false; 
      //comparing pressed keycodes 
      if ((keycode < 48 || keycode > 57)) { 
       if ((keycode > 95 && keycode < 106) && phn.value.length < 10)//if num lock is on 
       { 
        return true; 
       } 
       else if (keycode = 8 && phn.value.length > 6) { //check for backspace 
        return true; 
       } 
       else { 

        return false; 
       } 
      } 
      else { 
       //Condition to check textbox contains ten numbers or not 
       if (phn.value.length < 10) { 
        return true; 
       } 
       else { 
        return false; 
       } 
      } 
     } 

PLZ提出任何解決辦法嗎?

回答

0

使用了硬編碼的前綴的標籤,像這樣:

<label> 
<span class="frmlabelleftfloat">SSN: xx-xx-</span> 
<asp:TextBox ID="Last4OfSSN" runat="server" ValidationGroup="ssnValidation" MaxLength="4"></asp:TextBox> 
<span class="failureNotification">*</span> 
<asp:RegularExpressionValidator ID="regexpssn" runat="server" ControlToValidate="Last4OfSSN" 
    ValidationGroup="ssnValidation"  Display="Dynamic" ForeColor="Red" ErrorMessage="Should be 4 Digits" 
    ValidationExpression="\\d{4}?$"> </asp:RegularExpressionValidator> 
</label> 

需要,雖然驗證正則表達式。

+0

Thanks @Eamon for reply!但是,我想通過JavaScript只!..! – 2013-02-08 14:23:54

+0

好的,那麼你應該看看像http://www.meiocodigo.com/projects/meiomask/這樣的JavaScript庫......你只需在選項部分設置#作爲一個固定的字符,然後簡單地添加class =「 {mask:'## - ## - 9999'}「到輸入元素 - 希望有所幫助 – Eamon 2013-02-08 15:10:36