2010-10-04 48 views
2

我正在努力解決ASP .NET Validators JavaScript問題。以下功能(框架生成代碼的一部分)嘗試使用control.Field語法訪問驗證組屬性值。它在IE中正常工作,但在FF中,該值始終爲undefined。因此,驗證總是通過,我的驗證方案被破壞......有沒有辦法繞過它?ASP .NET驗證程序在FireFox中損壞

function IsValidationGroupMatch(control, validationGroup) { 
if ((typeof(validationGroup) == "undefined") || (validationGroup == null)) { 
return true; 
} 
var controlGroup = ""; 
if (typeof(control.validationGroup) == "string") { 
controlGroup = control.validationGroup; 
} 
return (controlGroup == validationGroup); 
} 

謝謝你,帕維爾

+0

什麼版本的.net?你使用ajax擴展嗎? – lincolnk 2010-10-04 14:45:03

+0

IIS中的框架版本設置爲2.我是否使用ajax擴展?呃,如何檢查? – dragonfly 2010-10-04 16:37:04

+0

IIS將爲2.0和3.5(兩個不同的版本號)顯示框架2.0 - 你應該看看你的項目,看看你使用的是什麼版本的框架。 – TheGeekYouNeed 2010-10-04 16:47:32

回答

2

這裏是罪魁禍首:

<xhtmlConformance mode="Strict"/> 

我在web.config中該行。設置爲默認值,即Transitional修復了問題。以下是主題的背景:Client side validation in FF

0

如果ASP.NET(不正確)determines瀏覽器不支持通過客戶端腳本進行驗證,那麼驗證將僅在服務器端執行。

但是服務器端驗證似乎只發生如果您的事件處理程序包括在事件處理程序方法的開始處的Page.IsValid檢查。

無論如何,如果瀏覽器禁用了JavaScript,最好包含此檢查。

public void MyButton_Click(object sender, EventArgs e) 
{ 
    if (!Page.IsValid) return; 

    ... the rest of your event handler .... 

}