.net c# validation
本文关键字:validation net | 更新日期: 2025-04-15 19:38:02
下午好,
我有一个使用C#服务器端验证的简单表单。当使用带有AutoPostBack
的单选按钮或下拉列表时,我必须在代码隐藏方法中调用Page.Validate()
。当我这样做时,它不会在覆盖C#验证的默认函数的页面上运行Javascript。
当我在autopostback方法中调用Page.Validate()
调用时,如何让javascript-ValidatorUpdateDisplay
函数运行?
提前感谢!
Rob
Javascript:
// Form Validation: Change TextBox CSS for outline color
ValidatorUpdateDisplay = function (val) {
var ctl = $('#' + val.controltovalidate);
var eCount = 0;
for (var i = 0; i < Page_Validators.length; i++) {
var v = Page_Validators[i];
if (v.controltovalidate == val.controltovalidate) {
if (!v.isvalid) {
eCount++;
ctl.addClass('validationError');
$('td.question:eq(' + i + ')').addClass('someClass');
}
}
}
if (eCount > 0) {
ctl.addClass('validationError');
}
else {
ctl.removeClass('validationError');
// $('td.question:eq(' + i + ')').removeClass('someClass');
}
if (typeof (val.display) == "string") {
if (val.display == "None") {
return;
}
else if (val.display == "Dynamic") {
val.style.display = val.isvalid ? "none" : "inline";
return;
}
}
if (navigator.userAgent.indexOf("Mac") > -1 &&
navigator.userAgent.indexOf("MSIE") > -1) {
val.style.display = "inline";
}
val.style.visibility = val.isvalid ? "hidden" : "visible";
}
您可以尝试使用基于RegisterStartupScript
的此代码
var javaScript =
"<script language=JavaScript>
ValidatorUpdateDisplay();
</script>";
RegisterStartupScript("Key_ClickScript", javaScript);
//C# validation for number only-
if (!(e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == 8))
{
e.Handled = true;
MessageBox.Show("This textbox accepts only Numbers");
}
//C# validation for characters only-
if (!char.IsLetter(e.KeyChar) && !(e.KeyChar == 8) && !(e.KeyChar == 32))
{
e.Handled = true;
MessageBox.Show("This textbox accepts only alphabetical characters");
}