2011-06-16 122 views
4

我在一個頁面上工作,我想使用HTML 5的setCustomValidity。很容易測試瀏覽器是否支持它:舊版瀏覽器上的HTML5?

var inpt = document.getElementsByTagName("input")[0]; // etc. 
if(typeof(inpt.setCustomValidity) != 'function') 
    // workaround here 

但我不確定是否有任何合理的方法來處理這個問題。當然,我可以在這種情況下編寫一個setCustomValidity函數,但它不會有上下文(對吧?)來處理事件。除非我有函數用自己的名字來調用它嗎?

如果有一個圖書館來處理這個(Modernizr等),那將是偉大的。如果有一個很好的解決方法,我很樂意使用它。

我有一些醜陋的黑客頭腦,但我寧願這樣做權利如果可能的話,無論可能。

回答

3

這可能是你在找什麼,如果你不使用jQuery介意: http://afarkas.github.com/webshim/demos/index.html

回退在不支持他們的瀏覽器表單驗證: http://afarkas.github.com/webshim/demos/demos/webforms.html

+0

那些看起來不錯。你碰巧知道他們是否使用'pattern =「」'? – Charles 2011-06-16 20:56:41

+0

模式在支持的屬性列表中,所以我想是這樣;沒有經驗,雖然 – fijter 2011-06-16 20:57:58

+0

謝謝,這是有幫助的。 – Charles 2011-06-16 21:03:32

1

我聽說過關於Modernizr的偉大的事情,並基於其收到的關注,我肯定會說試試看。

+1

是否處理'setCustomValidity ()'? – Charles 2011-06-16 20:51:25

+0

我在有關它的文檔中找不到任何東西,但看起來這將是一個足夠簡單的實現。我會說下載並嘗試一下。如果它不起作用,那麼我認爲編寫自己的setCustomValidity擴展方法不會太困難。 只需擁有一個全局二維數組,其對象的選擇器與其消息配對。擴展方法可以在被調用時將兩者都推入數組中。驗證一個給定的texbox是否未正確驗證,然後使用該數組作爲參考並設置焦點/顯示消息。 – MoarCodePlz 2011-06-16 21:02:07