2017-03-07 8 views
0

このMeteorテンプレートイベントclick .voteは、チェックボックスにチェックされているかどうかを確認するために、直前の兄弟をチェックしようとします。どのようにそれを行うことができますか? THX兄弟チェックボックス条件チェック

Template.checkbox.events({ 
    'click .valid':() => { 
    //do stuff 
    }, 
    'click .vote':() => { //99c 
    //check if its nearest sibiling is checked else exit 
    if ($(this).prevAll('input.valid').checked) { //<------ not cutting it 
     console.log('its sibling is checked'); 
     //do stuff 
    } else { 
     console.log('its sibling is not checked'); 
     //do other stuff 
    } 
    } 
}); 
<template name="checkbox"> 
    <div class="checkbox-container"> 
    <div class="checkbox"> 
     <label class="check"> 
     <input class="valid" type="checkbox" name={{name}} value={{value}} checked={{checked}}>{{label}} 
     <input class="vote" type="checkbox" name={{name}} value={{value}} checked={{checked}}> 
     </label> 
    </div> 
    </div> 
</template> 
+0

使用 '$(this)を探しているソリューションです。( "チェックする")されて'も一つだけが存在する場合'.prevAll()'の代わりに '.prev()'を使います。 – guradio

+0

@guradio兄弟がチェックされていても評価されないので、うまくいきません。そしてそれは唯一の兄弟ですので、代わりに '.prev()'を使用しました。 –

+0

'.prev()'は動作しましたか?私はそれが前にHTMLから基づいていると仮定し、それはあなたがエラーを取得している必要がありますか? – guradio

答えて

1

これを試してください:あなたはの詳細について

$(function(){ 
 
$(".vote").click(function(){ 
 
if($(this).siblings('input.valid').is(":checked")) { //<------ not cutting it 
 
    console.log('its sibling is checked'); 
 
    //do stuff 
 
} else { 
 
    console.log('its sibling is not checked'); 
 
    //do other stuff 
 
} 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
    <div class="checkbox"> 
 
     <input class="valid" type="checkbox">Checkbox Valid 
 
     <input class="vote" type="checkbox">Checkbox Vote 
 
    </div>

以下

よう.siblings()を利用することができますSiblings()

+0

兄弟姉妹がチェックされていても、これは真ではありませんでした。 –

+0

チェックする前に ':'を入れるのを忘れました。更新された投稿をチェックしてください –

1

$(".vote").change(function() { 
 

 
    if ($(this).closest('.check').find('input.valid').is(":checked")) { 
 
    console.log('its sibling is checked'); 
 
    //do stuff 
 
    } else { 
 
    console.log('its sibling is not checked'); 
 
    //do other stuff 
 
    } 
 
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="checkbox-container"> 
 
    <div class="checkbox"> 
 
    <label class="check"> 
 
     <input class="valid" type="checkbox" name={{name}} value={{value}} checked={{checked}}>{{label}} 
 
     <input class="vote" type="checkbox" name={{name}} value={{value}} checked={{checked}}> 
 
     </label> 
 
    </div> 
 
</div>

これは、あなたが.prevAll( 'input.valid'):checked