web-dev-qa-db-ja.com

JavaScriptを使用してHTML5入力要素の「プレースホルダー」属性を動的に変更する

JQueryを使用して、テキストフィールドのHTML5 placeholder属性を動的に更新しようとしています。

$("textarea").attr("placeholder", "New placeholder text");

Firebugから、placeholder属性が実際に変化していることがわかります。ただし、レンダリングされたtextarea要素では、同じままです。助言がありますか?

34
cemregr

Firebugを使用している場合、Firefoxを使用していると想定できますが、Firefoxは入力フィールド自体でplaceholder属性をまだサポートしていません。

プレースホルダー機能の検出

私はちょうどChrome for Macで試してみました、そしてそれはtextareasのプレースホルダーテキストをサポートします(およびjavascript経由の変更))

2015年の更新:時々この回答で評判が上がるので、Firefox 3.6はプレースホルダー属性をサポートしていなかったため、これが正しいと認められたことを明確にしたいと思います。その後、リリース4でサポートが追加されたため(「問題の修正」が公平ではなかったため)、OPのコードはそれ以降期待どおりに機能します。

15
Minkiele

これを試して :

$('#inputTextID').attr("placeholder","placeholder text");
51
tilak

私はあなたがそれをしなければならないと思います:

$("textarea").val('');
$("textarea").attr("placeholder", "New placeholder text");
18
xavok
<label for="myname">Name *</label>
<input type="text" name="myname" id="myname" title="Please enter your name"
       pattern="[A-Za-z ]+, [A-Za-z ]+"
       autofocus required placeholder="Last, First" />

次に、プレースホルダーを選択し、そのテキストをnew text that you want to enterに置き換えます。

$("input[placeholder]").attr("placeholder", "This is new text");

これにより、Last, FirstのテキストがThis is new textに置き換えられます。

3
NomanJaved

javascriptとJqueryを使用した動的プレースホルダーの動作例 http://jsfiddle.net/ogk2L14n/1/

<input type="text" id="textbox">
 <select id="selection" onchange="changeplh()">
     <option>one</option>
     <option>two</option>
     <option>three</option>
    </select>

function changeplh(){
    debugger;
 var sel = document.getElementById("selection");
    var textbx = document.getElementById("textbox");
    var indexe = sel.selectedIndex;

    if(indexe == 0) { 
     $("#textbox").attr("placeholder", "age");

}
       if(indexe == 1) { 
     $("#textbox").attr("placeholder", "name");
}
}
2
overflow