-1

我有一个带有数值和千位分隔符等的文本框。例如:12,111,111,111.804

最大长度为 14 个字符。

问题是,当我编辑该文本框时,它会计算特殊字符并且不允许在框中输入新值。我如何简单地消除最大长度中的特殊字符。

编辑:

对不起,伙计们不在城里。假设我们采用以下编号:12,312,312,312,312。所以有14位数字。我删除了最后 3 个。所以它将是 12,312,312,312,。现在我想为我删除后添加另外 3 位数字。我正在使用.net 2.0。这是一个 Windows 应用程序。

4

3 回答 3

1

添加一个 keyPress 事件并包含以下代码。将 >= 5 替换为文本框的最大大小,不包括小数或逗号。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if(Char.IsNumber(e.KeyChar))
        if(textBox1.Text.Replace(",", "").Replace(".", "").Length >= 5)
            e.Handled = true;
}
于 2013-03-15T10:30:01.733 回答
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");
        }
    });
});
于 2013-03-15T10:27:27.197 回答
0

您可以使用Linq来计算字符串中的数字

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

所以你可以使用喜欢

if (textBox1.Text.Count(char.IsNumber) <= 14)
{
    //valid
}
于 2013-03-15T10:43:42.257 回答