JQuery шаблоны выбора - PullRequest
       3

JQuery шаблоны выбора

1 голос
/ 10 августа 2011

У меня есть шаблон jquery с N переключателями, и мне нужно выбрать переключатель со значением, которое я передаю после загрузки шаблона из внешнего файла html (с помощью метода jQuery.tmpl ()).Есть ли хороший способ выбора переключателя в шаблоне без нескольких операторов {{if}}, {{else}}, дублирующего кода и селекторов?

Ответы [ 2 ]

3 голосов
/ 10 августа 2011

В каком формате ваши данные возвращаются с сервера? Если это массив JSON, не могли бы вы сделать что-то подобное?

HTML:

<script id="myTemplate" type="text/html">
    <input type="radio" value="${value}"{{if selected}} checked{{/if}}>${name}</input><br />
</script>

<div id="myDiv">
</div>

JavaScript:

var myData = [
    {name: 'test 1', value : 'radio1', selected : false},
    {name: 'test 2', value : 'radio2', selected : false},
    {name: 'test 3', value : 'radio3', selected : true},
    {name: 'test 4', value : 'radio4', selected : false}
];

$('#myTemplate').tmpl(myData).appendTo('#myDiv');

http://jsfiddle.net/JbTwB/1/

1 голос
/ 10 августа 2011

Если у вас есть значение нужного радио, вы можете сделать что-то вроде:

jInstance.find('input[value=' + desiredValue + ']').attr('checked', true);

Это предполагает, что jInstance является вновь созданной копией шаблона, и что desiredValue точносоответствует значению переключателя, который вы хотите предварительно выбрать.

Если вам известна только часть значения, существуют другие селекторы jQuery, которые можно использовать для нацеливания на этот вход.

Если вы ищете более общую процедуру «предварительного заполнения формы», вам нужно установить какой-то формат для хранения набора значений предварительного заполнения и сопоставление этого формата с шаблоном.Но это может быть сделано, и это не обязательно так сложно, либо.

...