车把及;Jquery:动态生成的ID
我正在车把及;Jquery:动态生成的ID,jquery,handlebars.js,Jquery,Handlebars.js,我正在把手页面上生成一个动态表单和按钮 原来的把手代码如下: {{#each record}} <input class="form-control" type="text" id="comment" value={{comment}}> <button class="btn small btn-success" id="btn-savecomment">SAVE COMMENT</button> {{/each}} 其目的是允许用户键入注
把手
页面上生成一个动态表单
和按钮
原来的把手
代码如下:
{{#each record}}
<input class="form-control" type="text" id="comment" value={{comment}}>
<button class="btn small btn-success" id="btn-savecomment">SAVE COMMENT</button>
{{/each}}
其目的是允许用户键入注释,然后将其保存到每条记录中
但是,在查看注释时,如何确保按钮标识正确的输入表单?当我点击一个特定的按钮时,它只从第一条记录中检索注释,因为它们都有相同的ID
谢谢你的帮助 你所做的实际上是错的。如您所知,
ID
s不应重复。您应该使用如下内容:
{{#each record}}
<input class="form-control" type="text" id="comment" value={{comment}}>
<button class="btn small btn-success btn-savecomment" id="btn-savecomment-{{@index}}">SAVE COMMENT</button>
{{/each}}
不同元素上不能有相同的id。这就是你的代码不起作用的原因。给每个元素一个不同的id。 您可以使用
{{@index}}
获取当前迭代计数,然后在id中使用它生成动态id,即:
<input class="form-control" type="text" id="comment_{{@index}}" value={{comment}}>
您也应该对按钮执行同样的操作。在jQuery代码中,可以使用prev()
方法访问输入
然后可以使用jquery访问它。或者您也可以使用类而不是id。这会更好。好吧,您可以动态生成id,但最有可能的是您应该使用更适合的类或数据值(或类似值):
{{#each record}}
<input class="form-control" type="text" data-comment={{@index}} value={{comment}}>
<button class="btn small btn-success" data-trigger="save">SAVE COMMENT</button>
{{/each}}
$(document).on("click", "[data-trigger='save']", function (evt) {
var commentID = $(this).prev().data("comment"); //index number, can be pretty much anything
});
{{#每条记录}
保存评论
{{/每个}}
$(文档)。在(“单击”、“[data trigger='save']”上,函数(evt){
var commentID=$(this).prev().data(“comment”);//索引号可以是几乎任何东西
});
在
上也有一个需要递增的ID字段。
<input class="form-control" type="text" id="comment_{{@index}}" value={{comment}}>
{{#each record}}
<input class="form-control" type="text" data-comment={{@index}} value={{comment}}>
<button class="btn small btn-success" data-trigger="save">SAVE COMMENT</button>
{{/each}}
$(document).on("click", "[data-trigger='save']", function (evt) {
var commentID = $(this).prev().data("comment"); //index number, can be pretty much anything
});