2010-10-12 4 views
31

J'essaie de mettre à jour dynamiquement l'attribut HTML5 placeholder d'un champ de texte à l'aide de jQuery.Modification dynamique de l'attribut "espace réservé" des éléments d'entrée HTML5 à l'aide de Javascript

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

De Firebug, je peux observer que l'attribut placeholder est en effet en train de changer. Mais dans l'élément textarea rendu, il reste le même. Aucune suggestion?

+1

Comment les autres navigateurs se comportent? – Tomalak

Répondre

15

Si vous utilisez Firebug, je peux supposer que vous utilisez Firefox, et Firefox ne prend pas encore en charge l'attribut placeholder dans les champs de saisie lui-même.

Placeholder feature detection

Je viens d'essayer sur Chrome pour Mac et il prend en charge le texte de l'espace réservé sur textareas (et des modifications via javascript)

2015 Mise à jour: parfois je gagne la réputation de cette réponse, je tiens à préciser que Cela a été accepté comme étant correct car Firefox 3.6 ne prenait pas en charge l'attribut d'espace réservé. La version 4 a ensuite ajouté le support ("fixé le problème" n'aurait pas été juste) donc le code d'OP fonctionne comme prévu depuis lors.

49

essayez ceci:

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

Je pense que vous devez faire:

$("textarea").val(''); 
$("textarea").attr("placeholder", "New placeholder text"); 
+2

effacer la valeur aide. – neelmeg

+0

Pour les futurs visiteurs, c'est d'abord ce qui a été fait. Chrome 40.0.2214.93 – BenRacicot

+0

Existe-t-il un moyen de définir le texte d'espace réservé à partir d'un var? ex: 'var $ text = 'abc'; $ ('# id'). Attr ("espace réservé", $ texte); ' – shaneparsons

2
<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" /> 

Ensuite, vous voulez sélectionner l'espace réservé et remplacer ce texte par le new text that you want to enter.

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

Cela remplacera le texte de Last, First à This is new text.

2

travail exemple d'espace réservé dynamique en utilisant Javascript et 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"); 
} 
} 
-1

HTML:

<input type="text" placeholder="entername" id="fname"/> 

JS:

$("#fname").attr("placeholder", "New placeholder text"); 
Questions connexes