2011-10-28 22 views
4

我正在考慮使用HTML5的placeholder屬性。如果瀏覽器不支持HTML5,我可以使用jQuery作爲後備。但是,如果JS被關閉了呢?我如何使用漸進式增強理念來處理這個問題?HTML5&佔位符:如何逐步做到這一點?

+0

由於您在下面的評論中說過,您不喜歡使用'placeholder'來標記'輸入'的語義(就像目前流行的Stack Overflow搜索欄一樣),即使是動態的,我想假設你正在尋找其他地方的佔位符是安全的。你對他們的目的是什麼? –

回答

5

爲什麼不顯示實際的<label>元素並用js隱藏它?

// js file 
$('label').hide(); 

這樣,沒有js,他們會看到一個普通的標籤;與js,標籤將被刪除,你會得到你的jQuery的佔位符,或者你的html5佔位符。

+1

這是做這件事的唯一方法,我可以想到這實際上是在做「漸進式增強」。我會稍微修改一下,以便您的JavaScript代碼不會隱藏標籤,而是從'label'文本動態創建一個「佔位符」,所以它不必在HTML源文件中重複。 –

+0

它的語義不正確。從規範:「佔位符屬性不應該用作標籤的替代品。」 (請參閱:http://www.w3.org/TR/html5/common-input-element-attributes.html#the-placeholder-attribute) – StackOverflowNewbie

+0

好吧,您不會刪除標籤,而是隱藏它。所以,從語義上講,你沒事。屏幕閱讀器也會獲得該標籤。 – swatkins