#jquery #jquery-templates
#jquery #jquery-шаблоны
Вопрос:
допустим, у меня есть шаблон jquery с этим HTML-кодом:
<div>
<span id="myfirstname"></span>
<select id="mygender" multiple="multiple">
<option value="1">-select-</option>
<option value="2">Male</option>
<option value="3">Female</option>
<option value="4">NotSpecified</option>
</select>
</div>
мой json выглядит следующим образом : { "FirstName": "John", "Gender": "Male" };
Я могу привязать myfirstname, используя $ {FirstName}, но как мне привязать выпадающее значение? Я использовал $ {Gender}, но это отображает только значение, а не выпадающий список с выбранным параметром «Мужской».
Ответ №1:
Одним из вариантов было бы что-то вроде:
<div>
<span id="myfirstname">${FirstName}</span>
<select id="mygender" multiple="multiple">
<option value="1">-select-</option>
<option value="2" {{if Gender == 'Male'}}selected="selected"{{/if}}>Male</option>
<option value="3" {{if Gender == 'Female'}}selected="selected"{{/if}}>Female</option>
<option value="4" {{if Gender == 'NotSpecified'}}selected="selected"{{/if}}>NotSpecified</option>
</select>
</div>
Если это слишком подробно, то вы могли бы создать функцию для выполнения сопоставления, например:
function match(value, choice) {
return value === choice ? "selected='selected'" : "";
}
Затем выполните:
<div>
<span id="myfirstname">${FirstName}</span>
<select id="mygender" multiple="multiple">
<option value="1">-select-</option>
<option value="2" ${match(Gender, 'Male')}>Male</option>
<option value="3" ${match(Gender, 'Female')}>Female</option>
<option value="4" ${match(Gender, 'NotSpecified')}>NotSpecified</option>
</select>
</div>