-1

数値と桁区切り記号などを含むテキスト ボックスがあります。例: 12,111,111,111.804

最大長は 14 文字です。

問題は、そのテキスト ボックスを編集すると特殊文字がカウントされ、ボックスに新しい値を入力できないことです。最大長から特殊文字を削除するにはどうすればよいですか。

編集:

申し訳ありませんが町の外にいました。次の no を取るとしましょう: 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 に答える