如果输入是“ A”,“ G”,“ C”,“ T”的数组,那么在C#(ASP.NET)中,isValid = false时,如何在自定义验证器中表达表达式?对于Windows窗体应用程序,我做到了,我需要类似的东西
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled =
char.IsLetter(e.KeyChar) && ((e.KeyChar == 65) || (e.KeyChar == 67) ||
(e.KeyChar == 71) || (e.KeyChar == 84) || (e.KeyChar == 97) ||
(e.KeyChar == 99) || (e.KeyChar == 103) || (e.KeyChar == 116)) ||
(e.KeyChar == 8) ? false : true;
}
为了验证,我有这个
protected void CustomValidator1_ServerValidate1(object source, ServerValidateEventArgs args)
{
Match validate = Regex.Match(TextBox1.ToString(), "[AGCT]");
if (validate.Success)
{
args.IsValid = true;
}
else args.IsValid = false;
}
答案 0 :(得分:1)
没问题!
在ASP.Net中,您将使用Javascript处理此验证。因此,您的输入元素将被声明为:
@Html.TextBoxFor(m => m.MyField)
然后,您将使用Javascript通过处理keyup事件来执行验证。
e.preventDefault()等同于您在WinForms中处理的e。
document.getElementById('@Html.IdFor(m => m.MyField)').onkeyup = function (e) {
if(~[65, 67, 71, 84, 97, 99, 103, 116, 8].indexOf(e.keyCode || e.which)) {
e.preventDefault();
return;
}
};
祝你好运!