如何让textbox
只接受号码?
当我的label.text
gms 或 rs 或结时,相应的textbox
仅接受数字。
当label.text
是字符时,它只允许字符值。
Example:gms: 1200
character:black
knot:5
rs:80
character:pink
此订单可能会根据选择而变化。 并且请发布ASPX代码。
答案 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)
虽然您想在c#中实施解决方案。更好的建议是在javascript中实施。
在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;
}
}
}
试试这很简单