Динамическое изменение атрибута заполнителя элементов ввода HTML5 с использованием Javascript

Я пытаюсь динамически обновлять атрибут HTML5 placeholder текстового поля с помощью jQuery.

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

Из Firebug я вижу, что атрибут placeholder действительно меняется. Но в отрендеренном элементе textarea он остается прежним. Какие-либо предложения?


person cemregr    schedule 12.10.2010    source источник
comment
Как ведут себя другие браузеры?   -  person Tomalak    schedule 13.10.2010


Ответы (6)


Если вы используете Firebug, я могу предположить, что вы используете Firefox, а Firefox еще не поддерживает атрибут placeholder в самих полях ввода.

Обнаружение заполнителей

Я только что попробовал Chrome для Mac, и он поддерживает текст-заполнитель в текстовых областях (и изменения через javascript).

Обновление 2015 года: иногда я получаю репутацию за этот ответ, поэтому я хочу уточнить, что это было принято как правильное, потому что в то время Firefox 3.6 не поддерживал атрибут заполнителя. Затем в выпуске 4 была добавлена ​​​​поддержка («исправить проблему» было бы несправедливо), поэтому с тех пор код OP работает, как и ожидалось.

person Minkiele    schedule 12.10.2010

попробуй это :

$('#inputTextID').attr("placeholder","placeholder text");
person tilak    schedule 25.10.2012

Я думаю, вы должны сделать это:

$("textarea").val('');
$("textarea").attr("placeholder", "New placeholder text");
person xavok    schedule 06.03.2013
comment
Для будущих посетителей эта очистка значения в первую очередь - это то, что сделало это. Хром 40.0.2214.93 - person Ben Racicot; 29.01.2015
comment
Есть ли способ установить текст заполнителя из var? пример: var $text = 'abc'; $('#id').attr("placeholder", $text); - person shaneparsons; 04.03.2015

<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.

person NomanJaved    schedule 15.09.2014

рабочий пример динамического заполнителя с использованием 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");
}
}
person overflow    schedule 13.01.2015

HTML:

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

JS:

$("#fname").attr("placeholder", "New placeholder text");
person Yogesh    schedule 20.09.2017