0

下午好,

我有一个使用 C# 服务器端验证的简单表单。当使用带有 的单选按钮或下拉列表时AutoPostBack,我必须Page.Validate()在代码后面的方法中调用。当我这样做时,它不会在覆盖 C# 验证的默认功能的页面上运行 Javascript。

当我在 autopostback 方法中调用调用时,如何让 javascript -ValidatorUpdateDisplay函数运行?Page.Validate()

提前致谢!

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

2 回答 2

0

您可以尝试使用此代码基于RegisterStartupScript

 var javaScript = 
  "<script language=JavaScript>
   ValidatorUpdateDisplay(); 
   </script>";

 RegisterStartupScript("Key_ClickScript", javaScript); 
于 2012-09-11T18:52:12.770 回答
0
//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");
            }
于 2019-11-03T16:47:56.737 回答