|
|
1
12
我也有这个问题。在花了太多时间分析MS客户端验证API;之后,我将问题追溯到了DOM解析的一个奇怪问题,下面我将解释为什么在某些情况下会发生这种情况,以及我用来修复它的解决方案。 [为什么会这样?] 每个验证程序控件都呈现为一个具有用于执行客户端验证的非标准属性的范围。例如,下面的EvaluationFunction属性:
这些属性由API中的框架解析,如下所示(注意eval):
问题是特殊属性,即EvaluationFunction,我们总是返回未定义的,因此字符串从未转换为正确的验证器对象。对我来说,这仍然是个谜,因为从我所知,这似乎是完全随机的。 当启动页面“clientvalidate”时,它会尝试调用每个验证程序validate函数,但不能这样做,因为evaluationfunction==未定义。它不使用“假”作为默认值,而是假定为“真”,因此实际上不会进行任何验证,并且从客户端看,所有内容都是有效的。这个 if(typeof(val.evaluationfunction)==“函数”) 永远不会是真的,所以它取决于 val.isvalid=真; .
[我怎么修好的?] 为了解决这个问题,我编写了一个例程,可以在DOM完成加载后调用它。这个例程循环所有的验证器控件,并尝试使用jquery从SPAN中的原始标记数据创建对象属性,尽管您可能使用任何其他等效工具来获得相同的结果。这个例程并不修复所有的验证器控件,主要是需要字段验证器和正则表达式验证器。如果使用其他具有附加属性的验证控件,则需要对其进行更改。
|
|
|
2
1
我决定实施一点黑客,这是使用jquery设置一个点击处理程序,检测页面上是否有任何错误,并只显示一条常规消息告诉用户查找和修复错误。 这不好,但暂时可以。 |
|
|
3
1
我相信您必须在验证程序的“文本”属性中输入值,以便在验证摘要中显示消息。“错误消息”是显示在验证程序所在页上的文本,“文本”属性是显示在验证摘要控件中的文本。 |
|
|
4
1
为了更方便的香草口味, 添加
到由validationcontrol保护的每个输入字段 |
|
|
5
0
如果你指出的话,给出更详细的答案会更容易。 哪一个 您使用的客户端验证程序。但是,一般来说,这并不难;大多数客户端验证器允许您指定验证消息应该出现在哪里,并且您可以将它们指向与保留验证摘要控件相同的HTML元素。 |
|
|
6
0
在“提交”按钮中,设置“CausesValidation=true”。这将强制客户端输入有效数据。如果验证控件未显示,则更可能是您没有将它们绑定到特定控件(我猜??)。是否已将所需字段验证程序的“controlToValidate”属性设置为指向要验证的文本框/字段? |
|
|
7
0
我知道这个问题早就“解决”了,但我只是碰到了同样的问题。我们将站点从.NET 3.5升级到.NET 4.0,客户端验证脚本停止工作。这些症状和詹姆斯在他出色的反应中描述的完全一样。 然而,这个决议,至少对我来说,比詹姆斯提供的要简单得多。简而言之, XHTML信息 在我的web.config中设置为 遗产 . 将其设置为 过渡时期 帮我解决问题。 因为它对我有效,我想用另一个更容易实现的解决方案来更新这个帖子。注意此参考: http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |