2013-12-18 30 views
1

目前,我为每个表单创建一个Handlebars模板,并在其中使用value={{user}}。所以我可以很容易地填写任何表单来更新任何实体。但是select,radiockeckbox是不同的。是否有任何干净的方式来填充这些元素。他们没有value属性。用于处理表格的处理程序模板

回答

0
<select id='select'> 
    <option selected value=user name=test>test</option> 
</select> 

,你可以看到,你可以控制的select通过设置“中选择”属性特定选项的值。

或者你可以尝试嵌入类似

document.getElementById('select').value={{user}} 

一些JavaScript代码,你需要确保你有正确的值选项属性设置

+1

这不是OP要求的。 – thomaux

0

您可以通过使用each帮手来实现这一目标。

<select> 
    {{#each options}} 
     <option>{{this}}</option> 
    {{/each}} 
</select> 

其中options是一个普通数组(["apple", "banana", "pear"])。

你可以在homepage找到更多的信息。还有一个例子,您的数组包含对象,如果您需要指定value属性,这可能很有用。

0

在计算器上,我发现这个答复: How to set selected select option in Handlebars template

有了一个很好的解决方案(从@janjarfalk由@BlaM编辑):

与此部分(使用jQuery)...

window.Handlebars.registerHelper('select', function(value, options){ 
    var $el = $('<select />').html(options.fn(this)); 
    $el.find('[value="' + value + '"]').attr({'selected':'selected'}); 
    return $el.html(); 
}); 

你可以用你的车把模板选择具有{{#选择状态}} ...

<select> 
    {{#select status}} 
    <option value="Completed">Completed</option> 
    <option value="OverDue">OverDue</option> 
    <option value="SentToPayer">SentToPayer</option> 
    <option value="None">None</option> 
    {{/select}} 
</select>