2012-01-10 15 views
2

私はJavaScriptプレースホルダスクリプトを使用してIEのプレースホルダをサポートしています。プレースホルダ - テキストエリアの入力の場合

入力タイプ=テキストで問題なく動作します。しかし、私はどのようにテキストエリアをサポートするためにスクリプトに追加を書いていますか?

私のコードは次のとおりです。事前に

function activatePlaceholders() { 
var detect = navigator.userAgent.toLowerCase(); 
if (detect.indexOf("safari") > 0) return false; 
var inputs = document.getElementsByTagName("input"); 
for (var i=0;i<inputs.length;i++) { 
    if (inputs[i].getAttribute("type") == "text") { 
    if (inputs[i].getAttribute("placeholder") && inputs[i].getAttribute("placeholder").length > 0) { 
    inputs[i].value = inputs[i].getAttribute("placeholder"); 
    inputs[i].onclick = function() { 
    if (this.value == this.getAttribute("placeholder")) { 
     this.value = ""; 
    } 
    return false; 
    } 
    inputs[i].onblur = function() { 
    if (this.value.length < 1) { 
     this.value = this.getAttribute("placeholder"); 
    } 
    } 
    } 
    } 
} 
} 
window.onload=function() { 
activatePlaceholders(); 
} 

感謝。

答えて

3

は単に

function activatePlaceholders() { 
var detect = navigator.userAgent.toLowerCase(); 
if (detect.indexOf("safari") > 0) return false; 
var inputs = document.getElementsByTagName("textarea"); 
for (var i=0;i<inputs.length;i++) { 

    if (inputs[i].getAttribute("placeholder") && inputs[i].getAttribute("placeholder").length > 0) { 
    inputs[i].value = inputs[i].getAttribute("placeholder"); 
    inputs[i].onclick = function() { 
    if (this.value == this.getAttribute("placeholder")) { 
     this.value = ""; 
    } 
    return false; 
    } 
    inputs[i].onblur = function() { 
    if (this.value.length < 1) { 
     this.value = this.getAttribute("placeholder"); 
    } 
    } 
    } 
} 
} 
window.onload=function() { 
activatePlaceholders(); 
} 
4

TEXTAREA入力タイプではないテキスト領域要素を問い合わせます。それ自体のタグです。例この場合

<textarea rows=10 placeholder="Enter text here"></textarea> 

、あなたのコードが

var inputs = document.getElementsByTagName("textarea"); 
inputs[0].setAttribute('placeholder','New placeholder'); 

それは

をホープことができます
関連する問題