如何制作一个textbox
只接受号码?当 mylabel.text
是gms或rs或knot时,各自textbox
只接受数字。什么时候label.text
是字符,它只允许字符值。
Example:gms: 1200
character:black
knot:5
rs:80
character:pink
此顺序可能会根据选择而改变。请也发布 ASPX 代码。
您可以为相应的文本框添加 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;
}
}
}
尽管您想在c#中实现解决方案。更好的建议是在javascript中实现。
在页面中添加简单的 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以获取详细代码。
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;
}
}
}
试试这个很简单
使用验证表达式在文本框上应用常规验证器,该表达式"^[0-9]"
最初只接受数字,使其禁用
然后,您可以根据标签的文本启用禁用它,使文本框接受所有数字或仅接受数字
试试这个,也许这是你正在寻找的东西:
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;
}
}
}