2014-01-22 2 views
0

Скажем, у меня есть объект с ключами и значениями, как

{ 
    input_1: 'value_of_input_1', 
    input_2: 1, 
    input_3: 'two' 
} 

Тогда некоторые входные поля:

<input type="text" name="input_1"> 
    <input type="checkbox" name="input_2"> 
    <select name="input_3"> 
    <option value="one"> One </option> 
    <option value="two"> Two </option> 
    <option value="three"> Three </option> 
    </select> 

Есть ли некоторая функция JQuery, который способен копировать значения из переменной объекта в фактические поля ввода? Я имею в виду установить правильные значения, установить или снять флажки, выбрать правильный вариант и т. Д.

Я знаю о $.val(), но он работает только для текстовых полей?

+1

Нет, нет. И .val() работает для отдельных элементов. –

+0

Вы можете написать простую небольшую функцию, чтобы сделать это без jQuery – Yoda

ответ

0

Я знаю, что он нахмурился, чтобы ответить на вопрос об библиотеке A с помощью «Просто используйте библиотеку B!». -type ответ. Поэтому рассмотрите это как возможность подумать, а не больше. Возможно, это правильная идея для вашей ситуации.

Вы ищете библиотеку привязки данных (ключевое слово MVVM), например, Knockout.

Наиболее простой пример:

function ViewModel(data) { 
    ko.mapping.fromJS(data, {}, this); 
} 

var data = { 
    input_1: 'value_of_input_1', 
    input_2: 1, 
    input_3: 'two' 
}; 

ko.applyBindings(new ViewModel(data)); 

и

<input type="text" name="input_1" data-bind="value: input_1"> 
<input type="checkbox" name="input_2" data-bind="checked: input_2"> 
<select name="input_3" data-bind="value: input_3"> 
    <option value="one"> One </option> 
    <option value="two"> Two </option> 
    <option value="three"> Three </option> 
</select> 

Смотрите эту скрипку: http://jsfiddle.net/t2QhU/2/

Смежные вопросы