流星将唯一身份证从表格传递给助手

时间:2015-01-22 20:29:29

标签: jquery meteor

我把它放在我的模板文件中:

<div>
   <label>Category</label>
   {{#each categories}}
      <input id="category_{{_id}}" type="checkbox" value="{{_id}}" name="category" {{hasCategory}} /> {{name}}
   {{/each}}
</div>

我的问题是如何在我的助手中访问输入ID:

"click #CATEGORY_ID_FROM_TEMPLATE_HERE": function() {
    var category_id = $('#CATEGORY_ID_FROM_TEMPLATE_HERE').val();
    return false;
}

我意识到它可能很简单,但我没有得到它,甚至谷歌搜索它。我知道我可以使用事件并访问它的目标属性,但我想使用jQuery。

如果有人可以帮助我。

2 个答案:

答案 0 :(得分:1)

 <div>
   <label>Category</label>
   {{#each categories}}
      <input id="{{this._id}}" class="example" type="checkbox" value="{{this._id}}" name="category" {{hasCategory}} /> {{name}}
   {{/each}}
</div>

this我们引用每个文档的实例。

现在,我们使用class selector示例,因为id need to be unique

"click .example": function() {
    //var category_id = $('#example').val();
    //console.log(category_id) 
    console.log(this._id) //this will return the id
    return false;
}

答案 1 :(得分:1)

在这种情况下使用ID是不必要的,会导致很多负面影响。特别是,如果您向页面添加其中两个模板,它们将停止工作,因为ID不是唯一的。相反,使用Meteor的内置功能来访问数据上下文:

<div>
   <label>Category</label>
   {{#each categories}}
      <input type="checkbox" value="{{_id}}" name="category" class="category-checkbox" {{hasCategory}} /> {{name}}
   {{/each}}
</div>

"click .category-checkbox": function(event) {
    // Inside here, this refers to the category object
    var category_id = this._id;
    var checkbox = $(event.target);
    return false;
}

编辑后编辑:

如果您仍想使用jQuery获取相关元素,那么执行此操作的正确方法是$(event.target)