Javascript检查页面是否有效

Cha*_*had 8 javascript asp.net validation

在我的提交按钮上,我想要做的是OnClick显示"请等待"面板并隐藏按钮,除非验证器说某些内容无效 - 然后我需要按钮仍然显示.否则,我有一个显示错误的验证摘要,无法再次提交.

我发现大多数关于这样做的文章都希望使用Page_ClientValidate()函数来告诉页面验证自己,但这对我来说是未定义的,就像Page_IsValid变量一样.这是我正在尝试使用的功能 - 我缺少什么?:

function PleaseWaitShow() {
    try {
        alert("PleaseWaitShow()");

        var isPageValid = true;

        // Do nothing if client validation is not active
        if (typeof(Page_Validators) == "undefined") {
            if (typeof(Page_ClientValidate) == 'function') {
                isPageValid = Page_ClientValidate();
                alert("Page_ClientValidate returned: " + isPageValid);
                alert("Page_IsValid=" + Page_IsValid);
            } else {
                alert("Page_ClientValidate function undefined");
            }
        } else {
            alert("Page_Validators undefined");
        }

        if(isPageValid) {
            // Hide submit buttons
           document.getElementById('pnlSubmitButton').style.visibility = 'hidden';
           document.getElementById('pnlSubmitButton').style.display = 'none';

           // Show please wait panel
           document.getElementById('pnlPleaseWait').style.visibility = 'visible';
           document.getElementById('pnlPleaseWait').style.display = 'block';
       } else {
           alert("page not valid - don't show please wait");
       }
   } catch(er) {
       alert("ERROR in PleaseWaitShow(): " + er);
   }
}
Run Code Online (Sandbox Code Playgroud)

小智 8

更改此行"if(typeof(Page_Validators)=="undefined")"to if(typeof(Page_Validators)!="undefined")

  • 很棒的.:) (2认同)

Zha*_*uid 5

根据" ASP.NET验证深度 " 页面上的"客户端API"部分:

Page_IsValid | 布尔变量| 指示页面当前是否有效.验证脚本始终保持最新.

实际上,在启用了ASP.NET客户端验证的表单上的FireBug中查看此变量时,它会在我填写表单的详细信息(错误或正确)时更新.

显然,如果您已在验证程序或验证摘要上禁用了客户端脚本,则此变量将无法使用.


Cha*_*had 0

我相信我已经找到了“某种”答案。

我仍然无法确定为什么我的页面无法识别“Page_ClientValidate()”或“Page_IsValid” - 这部分仍然没有答案。

但是,我在页面上使用了许多 PeterBlum 验证器,这些验证器确实提供了返回 true/false 的“VAM_ValOnSubmit()”。所以这可能是解决方案。我可能只需要确保所有验证者都是 PeterBlum 即可捕获所有验证者。

这不是最好的解决方案,但比我迄今为止得到的要好。我仍然愿意接受“Page_IsValid”部分的答案。