.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";
}

.net c# validation

您可以尝试使用基于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");
            }