Последний раз I asked about the reverse process и получили очень эффективные ответы. Я нацелен на наименьшие строки кода здесь. У меня есть форма полей и ассоциативный массив в формате {fieldname: data}, я хочу заполнить с ним соответствующую форму.Заполняют форму с данными из ассоциативного массива с jQuery
ответ
Когда я сделал это для проекта, я установил, что для установки значения полей выбора, переключателей и флажков потребовался более сложный код, что-то вроде строк:
jQuery.each(data, function (name,value) {
jQuery("input[name='"+name+"'],select[name='"+name+"']").each(function() {
switch (this.nodeName.toLowerCase()) {
case "input":
switch (this.type) {
case "radio":
case "checkbox":
if (this.value==value) { jQuery(this).click(); }
break;
default:
jQuery(this).val(value);
break;
}
break;
case "select":
jQuery("option",this).each(function(){
if (this.value==value) { this.selected=true; }
});
break;
}
});
});
Я не тестировал этот код, поэтому надеюсь, что нет глупых синтаксических ошибок, которые я должен был поймать. Надеюсь это поможет.
Мне не позволено комментировать комментарии здесь (пока), поэтому .... Как отмечено в комментарии, метод jQuery .val (val) обрабатывает установку переключателей, флажки и выделения.
Вам все равно нужно поместить select [name = ...] в шаблон селектора jQuery или элементы выбора не будут обновляться.
Если ваши формы элементы их ID устанавливается в имя_поля:
$.each(myAssocArry, function(i,val) { $('#'+i).val(val); });
Или аналогично предыдущему предложению, используя имена полей вместо идентификаторов:
$.each(data, function(name,value) {
$("input[name='" + name + "']").val(value);
});
Хороший ответ, но он не будет выбирать отдельные поля или текстовые поля. Возможно, измените «input [name = ...]» на «* [name = ...]»? Кроме того, я только что исправил синтаксическую ошибку в вашем коде. – nickf 2008-10-06 04:04:58
Я не уверен, что «*» будет работать, и это может быть несколько интенсивным, если это произойдет. Вы можете добавить другие параметры, разделенные запятыми - $ ("input [name ...], выберите [name ...], textarea [name ...]). Val ... – 2008-10-06 18:48:07
Я не видел, чтобы дескриптор jQuery передавал одно значение (без массива) в val() для радио или ввода флажка. Вы должны обязательно обернуть одно значение в массив.
Я также, как правило, не хотел изменять значения кнопочных входов, поэтому я отфильтровываю их.
Вот функция, которая обрабатывает обработку массива, фильтрацию кнопок, а также ограничивает выбор ввода для данного элемента формы. Параметр формы является необязательным. Если значение left/null/undefined, то будут выбраны все входы на странице.
function populateForm(data, form) {
$.each(data, function(name, value) {
var input = $(":input[name='" + name + "']:not(:button,:reset,:submit,:image)", form);
input.val((!$.isArray(value) && (input.is(':checkbox') || input.is(':radio'))) ? [ value ] : value);
});
};
- 1. Создание ассоциативного массива с использованием JQuery
- 2. JQuery с использованием пост ассоциативного массива
- 3. Javascript длина ассоциативного массива с помощью JQuery
- 4. Доступ ассоциативного массива с помощью JQuery
- 5. Jquery - Создание URL из ассоциативного массива
- 6. Как получить ключ/значение из ассоциативного массива с помощью JQuery
- 7. Получение значения из ассоциативного массива PHP с помощью JQuery
- 8. итерация цикла из PHP ассоциативного массива с помощью JQuery
- 9. Проблема с извлечением значения из ассоциативного массива
- 10. Обновление значений ассоциативного массива jquery
- 11. создание массива ассоциативного массива в jquery
- 12. Дерево из ассоциативного массива
- 13. Highcharts заполняют категории живыми данными из MySQL
- 14. jquery заполните форму ввода с данными url
- 15. UITableView с данными из массива
- 16. ошибка ассоциативного массива push?
- 17. Выходные данные из ассоциативного массива
- 18. Получение значений из ассоциативного массива
- 19. Инициировать объекты из ассоциативного массива
- 20. удаление дубликатов массива из ассоциативного массива
- 21. Вручную создание ассоциативного массива
- 22. заполните форму с данными из базы данных
- 23. Отправить форму данных с удаленными данными с помощью jQuery
- 24. Удалить ключ из ассоциативного массива
- 25. Удаление индексов из ассоциативного массива
- 26. JSON из PHP ассоциативного массива
- 27. PHP: Как удалить элементы из одного ассоциативного массива с использованием другого ассоциативного массива
- 28. Как получить имя массива из ассоциативного массива
- 29. Длина яваскрипта ассоциативного массива
- 30. jQuery - загрузка jqGrid - TreeGrid с данными массива
Этот шов пропускает флажки. Он не проверяет их, а изменяет значение, определенное для них. – Pentium10 2011-06-14 20:27:54