Ändern der „Platzhalter“ Attribut von HTML5 Eingabeelemente dynamisch mit Javascript
-
29-09-2019 - |
Frage
Ich versuche, das HTML5 placeholder
Attribut eines Textfeldes mit jQuery dynamisch zu aktualisieren.
$("textarea").attr("placeholder", "New placeholder text");
Von Firebug kann ich feststellen, dass das placeholder
Attribut in der Tat verändert sich. Aber im gerenderten textarea
Elemente, bleibt es das gleiche. Irgendwelche Vorschläge?
Lösung
Wenn Sie Firebug ich verwenden annehmen können Sie Firefox verwenden, und Firefox noch nicht placeholder
Attribut in den Eingabefeldern selbst unterstützen.
Ich habe gerade versucht, auf Chrome für Mac und unterstützt Platzhalter-Text auf Textbereiche (und Änderungen über Javascript)
2015 Update: manchmal erhalte ich Ruf für diese Antwort, so dass ich zu klären, will, dass dies, weil zu der Zeit als richtig akzeptiert wurde Firefox 3.6 nicht Platzhalter Attribut unterstützen. Release 4 dann zusätzliche Unterstützung ( „das Problem behoben“ hätte nicht fair) so den Code der OP arbeitet als seitdem erwartet.
Andere Tipps
versuchen, diese:
$('#inputTextID').attr("placeholder","placeholder text");
Ich glaube, Sie haben das zu tun:
$("textarea").val('');
$("textarea").attr("placeholder", "New placeholder text");
<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" />
Dann mögen Sie den Platzhalter auswählen und diesen Text mit dem new text that you want to enter
ersetzen.
$("input[placeholder]").attr("placeholder", "This is new text");
Damit wird der Text von Last, First
zu This is new text
ersetzen.
Arbeitsbeispiel für dynamische Platzhalter mit Javascript und 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");
}
}
HTML:
<input type="text" placeholder="entername" id="fname"/>
JS:
$("#fname").attr("placeholder", "New placeholder text");