2012-03-06 41 views
0

我正在使用XHR在HTML5中開發內聯網應用程序(我無法訪問任何示例)。您可以看到一個測試here觸發輸入的上下文錯誤消息

對於<form>我希望做一個XHR,我測試的形式,像這樣的有效性:

if (form.checkValidity()) 
{ 
    $.post([...]); 
} else { 
    errormessages(); 
} 

同樣的方式,進入後(在[...]部分)的回報,我可以有錯誤驗證來自服務器的消息。所以我將它們連接到這樣的inpts:

input.setCustomValidity(le_error_message); 

le_error_message真的是連接我可以看到成input.validationMessage
:invalid CSS選擇器設置爲輸入,但...

我怎樣才能觸發瀏覽器(Firefox,鉻,等...),以顯示自己的標準上下文錯誤消息?

我試過form.submit(),但它會真的提交表單,甚至跳過我希望瀏覽器應該做的事情。

我看不到任何提及,也沒有檢查inputform元素。

另請參閱此French speaking paper

+0

「標準上下文錯誤消息」是什麼意思? – 2012-03-06 04:37:17

回答

0

你想顯示「服務器端表單錯誤」與默認的「客戶端表單錯誤顯示」功能?但如果你的表單是有效的客戶端,它將不會顯示任何錯誤信息。如果你想顯示服務器端發生的錯誤,使用javascript構建你自己的錯誤顯示功能,因爲你正在使用ajax。

+0

這不是真正有用的反饋恕我直言。他試圖做的是使用HTML5表單驗證機制的一種非常聰明且可能有用的方法,也用於服務器端驗證錯誤。沒有明顯的理由說明爲什麼它不應該以這種方式重新使用setCustomValidity()方法。 – hallvors 2012-07-13 02:40:40

0

我同意這將是很好,如果這是可能的。這個想法是否在HTML5工作組中討論過?例如,可以添加一個form.showValidityErrors()方法腳本可以隨意觸發。

但是你想要在jsfiddle example中做的事情不應該起作用。瀏覽器應該執行驗證並顯示驗證消息(包括自定義消息)之前提交事件觸發。從提交事件調用setCustomValidity()不起作用。您應該將代碼移至按鍵/更改偵聽器,如this demo