如何使文本框仅根据条件接受数字?

时间:2013-09-21 04:38:41

标签: c# asp.net c#-4.0

如何让textbox只接受号码? 当我的label.text gms rs 时,相应的textbox仅接受数字。 当label.text是字符时,它只允许字符值

Example:gms: 1200
        character:black
        knot:5
        rs:80
        character:pink

此订单可能会根据选择而变化。  并且请发布ASPX代码。

5 个答案:

答案 0 :(得分:1)

您可以为相应的文本框添加KeyPress事件吗? 这样你就可以做到以下几点!

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
   if ((label.Text.Equals("gms") || label.Text.Equals("rs") || label.Text.Equals("knot"))
   { 
      if (!char.IsDigit(e.KeyChar))
      {
         e.Handled = true;
      }
   }
   else
   {
      if (!char.IsLetter(e.KeyChar))
      {
         e.Handled = true;
      }
   }
}

答案 1 :(得分:0)

在文本框中应用常规验证器,验证表达式"^[0-9]"仅接受数字 最初禁用它

然后您可以根据标签的文字启用禁用它,使文本框接受全部或仅接受数字

答案 2 :(得分:0)

试试这个,也许这是你正在寻找的东西:

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
        {
           if ((label.Text.Equals("gms") || label.Text.Equals("rs") || label.Text.Equals("knot")))
           { 
              if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
                {
                    e.Handled = true;
                }

              // only allow one decimal point
              if (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
              {
                  e.Handled = true;
              }
           }
        }

答案 3 :(得分:0)

虽然您想在中实施解决方案。更好的建议是在中实施。

aspx页面添加简单的javascript函数,在代码隐藏文件中没有代码。

$(document).ready(function () {

var arrForNum = ['gms', 'rs', 'knot']; //Your list of label texts for Number only textboxes
// Now traverse for all textboxes where u want to add some restrictons

$('body').find('.customonly').each(function () {
    var id = this.id;
    var res = $('label[for=' + id + ']').text();    
   // check if its the array we declared else it will be charecters only. 
    if ($.inArray(res, arrForNum) >= 0) {
        $(this).forceNumeric();  // Added simple function in fiddle.
       //You can apply any other function here if required.
    } else {
        $(this).forceCharecters('chars');
    }
  });
});

检查JsFiddle以获取详细代码。

答案 4 :(得分:0)

private void txt3_KeyPress(object sender, KeyPressEventArgs e)
{

    for (int h = 58; h <= 127; h++)
    {
        if (e.KeyChar == h)             //58 to 127 is alphabets tat will be         blocked
        {
            e.Handled = true;
        }

    }

    for(int k=32;k<=47;k++)
    {
        if (e.KeyChar == k)              //32 to 47 are special characters tat will 
        {                                  be blocked
            e.Handled = true;
        }

    }



}

试试这很简单