【问题标题】:Why does my Client-Side Validation display output to the browser?为什么我的客户端验证向浏览器显示输出?
【发布时间】:2012-08-01 02:16:59
【问题描述】:

我一直在阅读有关 ASP.NET Validation 的信息,并在 SO 的 How do I get Client-side validation of ASP.Net page to run? 上找到了一个相关问题,但似乎没有任何内容可以解决为什么其中一些验证会发布到浏览器。

显然,有什么地方不对劲。正在显示以下文本:

var Page_ValidationActive = false; if (typeof(ValidatorOnLoad) == "function") { ValidatorOnLoad(); } function ValidatorOnSubmit() { if (Page_ValidationActive) { return ValidatorCommonOnSubmit(); } 其他 { 返回真; } } //]]>

最后一点看起来像一个 CDATA 结束标签,我拥有的唯一 CDATA 标签是从 Google 或 Facebook 等社交媒体网站链接的标签。

谁能告诉我这是什么原因造成的?

可能我有另一个设置告诉客户端将输出转储到浏览器,就像我在 this post. 中所做的那样

【问题讨论】:

  • 当你从脚本中删除<!--CDATA-->等时,它是否仍然输出?

标签: asp.net validation


【解决方案1】:

那里的代码中有一个CDATA 部分。如果您复制它,您的代码也会如此。

我通过移动脚本上方的CDATA 部分进行了实验并得到了相同的结果,如下所示:

<![CDATA[
<script type="text/javascript">
var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
//]]>
</script>

在这种情况下,CDATA 标记应移至script 标记下方。或者,完全删除 CDATA 标记。

【讨论】:

  • 这段代码不是微软 ASP 的一部分吗?意思是,我无权访问此代码,并且它不会出现在我编写的任何地方。
  • 我不知道它是否是 ASP 的一部分(你会比我更了解 ASP),但设置 XHTML 一致性是否有帮助,就像在 this comment 中一样?
【解决方案2】:

我不明白为什么脚本会显示在网页上,但错误是因为我的一个验证控件被错误地排除在组之外。

在验证组中包含所有验证控件后,错误就消失了。

如果有人知道为什么将错误回显到浏览器,请告诉我,以便我可以从我的网站禁用此“功能”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 2016-04-10
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多