2013-03-15 31 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 
}