Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于处理表单的Handlerbars模板_Javascript_Handlebars.js - Fatal编程技术网

Javascript 用于处理表单的Handlerbars模板

Javascript 用于处理表单的Handlerbars模板,javascript,handlebars.js,Javascript,Handlebars.js,目前,我为每个表单创建了一个把手模板,并在其中使用value={{user}}。因此,我可以轻松填写任何表格,以更新任何实体。但是select、radio和CKBOX是不同的。是否有任何干净的方法来填充这些元素呢。它们没有值属性 <select id='select'> <option selected value=user name=test>test</option> </select> 您需要确保设置了具有正确值属性的选项,您可以通过使

目前,我为每个表单创建了一个把手模板,并在其中使用value={{user}}。因此,我可以轻松填写任何表格,以更新任何实体。但是select、radio和CKBOX是不同的。是否有任何干净的方法来填充这些元素呢。它们没有值属性

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

您需要确保设置了具有正确值属性的选项,您可以通过使用每个帮助器来实现这一点

其中选项是一个普通数组[苹果、香蕉、梨]


您可以在上找到更多信息。还有一个示例,其中数组包含object,如果需要指定值属性,该示例可能会很有用。

关于stackoverflow,我发现以下回复:

使用@BURM编辑的@janjarfalk提供的非常好的解决方案:

使用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 status}在把手模板中换行选择项

<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>

这不是OP的要求。
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>