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 у форму введення текстових значень. Але не працює :(

Відповіді:


307

ні, вам потрібно зробити щось на кшталт:

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

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

Ви також можете отримати більш конкретні, такі як:

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

Редагувати:

зробіть це, щоб знайти свій внесок на основі атрибута імені:

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

Я прийму цей тендер, чи можете ви порекомендувати гарну книгу / навчальний посібник (бажано, книгу) про jquery, де я справді можу дізнатися про вибраних? особливо форми селектораS?
Йорікам

7
це далеко не найкраще в Інтернеті: futurecolors.ru/jquery
Джейсон

@Jason Посилання розірвано, як називається книга, будь ласка?
oyalhi

@oyalhi о ні! мені шкода цьому коментарю 5 років, тому я гадаю, що його зняли :(
Джейсон

@Jason Так, на жаль. Однак ви пам’ятаєте назву книги?
oyalhi

31

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

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

це змінить атрибут valueелемента DOM з ідентифікатором #colorpickerField1від #EEEEEEна#000000


26

Найкраща практика полягає у використанні ідентифікатора безпосередньо:

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


простий і найкращий :)
MRRaja

2
Чому це працює, але document.getElementById("#id").value = 'xxx';не працює для мене? Це не змінює текстове значення, яке з'являється, лише властивість значення елемента DOM.
користувач3494047

1
Ви вже використовуєте метод ById, # призначений для позначення css. Видали це.
Скотт Чу

9

При встановленні нового значення елемента потрібно змінити тригер виклику.

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


Це вирішило для мене проблему, коли обробник подій зміни змінювався двічі; один раз з новим значенням, а потім знову з [attr = val]
Пітер Ленджо

3

Просто додавши до відповіді Джейсона, . селектор призначений лише для занять. Якщо ви хочете вибрати щось, крім елемента, ідентифікатора чи класу, вам потрібно загорнути його у квадратні дужки.

напр

$('element[attr=val]')

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.