0

如何制作一个textbox只接受号码?当 mylabel.textgmsrsknot时,各自textbox只接受数字。什么时候label.text是字符,它只允许字符值

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

此顺序可能会根据选择而改变。请也发布 ASPX 代码。

4

5 回答 5

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;
      }
   }
}
于 2013-09-21T06:51:23.310 回答
0

尽管您想在中实现解决方案。更好的建议是在中实现。

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

$(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以获取详细代码。

于 2013-09-23T09:04:38.453 回答
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;
        }

    }



}

试试这个很简单

于 2013-10-16T09:10:13.923 回答
0

使用验证表达式在文本框上应用常规验证器,该表达式"^[0-9]"最初只接受数字,使其禁用

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

于 2013-09-21T06:32:25.770 回答
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;
              }
           }
        }
于 2013-09-23T06:39:48.997 回答