jQuery изменить значение входного текста

155

Я не могу найти правильный селектор для:

<input maxlength="6" size="6" id="colorpickerField1" name="sitebg" value="#EEEEEE" type="text">

Я хочу изменить значение на = 000000. Мне нужен селектор, чтобы найти «имя», а не идентификатор ввода текста.

Разве это не должно работать?

$("text.sitebg").val("000000");

Представленное решение не работает, в чем проблема с этим?

$.getJSON("http://www.mysitehere.org/wp-content/themes/ctr-theme/update_genform.php",function(data) {
    $("#form1").append(data.sitebg);
    $('input.sitebg').val('000000');
});

Данные JSON работают правильно; Идея состоит в том, чтобы позже передать значения JSON во входные текстовые значения формы. Но не работает :(

Joricam
источник

Ответы:

308

нет, вам нужно сделать что-то вроде:

$('input.sitebg').val('000000');

но вы действительно должны использовать уникальные идентификаторы, если можете.

Вы также можете получить более конкретные, такие как:

$('input[type=text].sitebg').val('000000');

РЕДАКТИРОВАТЬ:

сделайте это, чтобы найти ваш ввод на основе атрибута имени:

$('input[name=sitebg]').val('000000');
Джейсон
источник
Я приму этого удивителя, можете ли вы порекомендовать хорошую книгу / учебное пособие (желательно книгу) о jquery, где я действительно могу узнать о селекторах? особенно селекторы формы?
Joricam
7
это, безусловно, лучшая вещь в интернете: futurecolors.ru/jquery
Джейсон,
@ Джейсон Ссылка не работает, какое название книги, пожалуйста?
oyalhi
@ oyalhi о нет! Мне жаль. этому комментарию 5 лет, так что я думаю, что его сняли :(
Джейсон
@ Джейсон Да, к сожалению. Тем не менее, вы помните название книги?
oyalhi
31

jQuery способ изменить значение в поле ввода текста:

$('#colorpickerField1').attr('value', '#000000')

это изменит атрибут valueдля элемента DOM с идентификатором #colorpickerField1с #EEEEEEна#000000

Владимир Кроз
источник
26

Лучшая практика заключается в использовании идентификатора напрямую:

$('#id').val('xxx');

MGE
источник
простой и лучший :)
MRRaja
2
Почему это работает, но document.getElementById("#id").value = 'xxx';не работает для меня? Он не изменяет отображаемое текстовое значение, а только свойство value элемента DOM.
user3494047
1
Вы уже используете метод ById, # для обозначения css. Убери это.
Скотт Чу
9

Когда установлено новое значение элемента, вам нужно изменить триггер вызова.

$('element').val(newValue).trigger('change');

Ричелли Итало
источник
Это исправило проблему для меня, когда обработчик события изменения вызывался дважды; один раз с новым значением, а затем снова с [attr = val]
Питер Ленджо
3

Просто добавив к ответу Джейсона, .селектор только для классов. Если вы хотите выбрать что-то отличное от элемента, идентификатора или класса, вам нужно заключить его в квадратные скобки.

например

$('element[attr=val]')

Роберт Ингрум
источник