Динамическое изменение атрибута «заполнитель» элементов ввода HTML5 с помощью Javascript
-
29-09-2019 - |
Вопрос
Я пытаюсь динамически обновить HTML5 placeholder
атрибут текстового поля с помощью jQuery.
$("textarea").attr("placeholder", "New placeholder text");
Из Firebug я могу заметить, что placeholder
атрибут действительно меняется.Но в рендере textarea
элемент, он остается прежним.Какие-либо предложения?
Решение
Если вы используете Firebug, я могу предположить, что вы используете Firefox, а Firefox еще не поддерживает placeholder
атрибут в самих полях ввода.
Обнаружение функции заполнителя
Я только что попробовал Chrome для Mac, и он поддерживает текст-заполнитель в текстовых областях (и изменения через JavaScript).
Обновление 2015 года:иногда благодаря этому ответу я зарабатываю репутацию, поэтому хочу уточнить, что это было принято как правильное, поскольку в то время Firefox 3.6 не поддерживал атрибут заполнителя.Затем в выпуске 4 была добавлена поддержка («исправить проблему» было бы несправедливо), поэтому с тех пор код OP работает так, как ожидалось.
Другие советы
попробуй это :
$('#inputTextID').attr("placeholder","placeholder text");
Я думаю, ты должен это сделать:
$("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" />
Затем вы хотите выбрать заполнителя и заменить этот текст на new text that you want to enter
.
$("input[placeholder]").attr("placeholder", "This is new text");
Это заменит текст Last, First
к This is new text
.
Рабочий пример динамического заполнителя с использованием javaScript и jQueryhttp://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");