如何使用template.find()来检查复选框?

时间:2016-04-13 17:49:02

标签: javascript meteor

我有一个带有复选框输入的模板:

如果我使用这个HTML

Controller::set()

和      <label class="checkbox-inline"> <input type="checkbox" name="apPartTime" checked="{{isWorkChecked 'isPartTime'}}">Part Time </label>

我可以得到真或假,但如果我只想使用javascript,我怎样才能获得布尔值?

如果html喜欢这个

let isPartTime = $('[name=apPartTime]').is(':checked');

我想要检查此复选框是否

我试过

<label class="checkbox-inline">
  <input type="checkbox"  id ="apFullTime" 
      checked="{{isWorkChecked 'apFullTime'}}">Full Time
</label>

没有工作。

1 个答案:

答案 0 :(得分:0)

如果您将复选框打包在表单中,则可以通过访问event.target.myId.checked来检索该值。

例如:

<template name="myTemplate">
    <form class="my-form">
        <label class="checkbox-inline">
            <input type="checkbox" id="ap-full-time-form">Full Time
        </label>
        <button type="submit">Submit</button>
    </form>
</template>
Template.myTemplate.events({
    'submit .my-form'(event, instance) {
        event.preventDefault();
        let isChecked = event.target["ap-full-time-form"].checked;
        console.log(isChecked);
    }
});

如果要为输入类型注册单独的Meteor事件,可以使用event.target.checked直接访问该值。

例如:

<template name="myTemplate">
    <label class="checkbox-inline">
        <input type="checkbox" id="ap-full-time-form">Full Time
    </label>
</template>
Template.myTemplate.events({
    'click input'(event, instance) {
        let isChecked = event.target.checked;
        console.log(isChecked);
    }
});

此外,您只需使用instance.find("#myId").checked

即可
Template.myTemplate.events({
    'submit .my-form'(event, instance) {
        event.preventDefault();
        let isChecked = instance.find("#ap-full-time-form").checked;
        console.log(isChecked);
    }
});