2013-03-15 55 views
-1

我有一個數字值和千位分隔符等文本框等。例如:12,111,111,111.804文本框最大字符無特殊字符

最大長度爲14個字符。

問題是,當我編輯該文本框時,它會計算特殊字符並且不允許將新值輸入到框中。我如何簡單地消除最大長度的特殊字符。

編輯:

對不起,傢伙出城。假設我們採取以下號碼:12,312,312,312,312。所以有14位數字。並刪除最後3.所以它將是12,312,312,312,。現在我想爲我刪除的一次添加另外3位數字。我正在使用.net 2.0。這是一個Windows應用程序。

+1

@ user1737909啊,這是最好的解決辦法 – 2013-03-15 10:15:59

+0

@Sri:爲什麼不只需增加最大長度? – Otiel 2013-03-15 10:17:30

+0

@Otiel - 是的,以協助ASP.NET控件。 – 2013-03-15 10:18:02

回答

1

添加按鍵事件,包括下面的代碼。 用您的文本框的最大大小替換> = 5,不包括小數或逗號。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if(Char.IsNumber(e.KeyChar)) 
     if(textBox1.Text.Replace(",", "").Replace(".", "").Length >= 5) 
      e.Handled = true; 
} 
+0

我試過你的解決方案。但有一個問題。假設我們採取以下號碼:12,312,312,312,312。所以有14位數字。並刪除最後3.所以它將是12,312,312,312,。現在我想爲我刪除的一次添加另外3位數字。但它不能輸入。 – Sri 2013-03-18 12:55:03

+0

我想我已經將maxLength屬性設置爲14.我刪除它,它的工作原理。謝謝 – Sri 2013-03-18 13:21:48

0

你可以嘗試,並通過自定義它作爲你需要下面的jQuery代碼使用:

$(document).ready(function() 
{ 
    $('#textbox1').keyup(function (event) 
    { 
     var currentValue = $(this).val(); 
     var length = currentValue.length; 
     var commaCount = 0; 

     // Get Comma Count 
     for (i = 0; i < this.value.length; i++) 
     { 
      if (this.value.charAt(i) == ',') 
       commaCount++; 
     } 

     if (length > 3) 
     { 
      // remove comma's to work out the number of digits. 
      length = length - commaCount; 
     } 

     if (length<=14) 
     { 
      $(this).val(currentValue); 
     } 
     else 
     { 
      alert("validation fails! length can not exceed 14 digits"); 
     } 
    }); 
}); 
+0

用戶在標籤中指定c#。 – CathalMF 2013-03-15 10:31:31

0

可以使用Linq字符串

int count = textBox1.Text.Count(char.IsNumber); 

在計算數字所以,你可以使用像

if (textBox1.Text.Count(char.IsNumber) <= 14) 
{ 
    //valid 
}