2017-04-20 12 views
3

を設定し、最大を示しています(https://semantic-ui.com/modules/checkbox.html#/definitionに基づく)各チェックボックスが二回

  • のjQuery 3.2.1
  • セマンティックUI 2.1
  • クローム

HTML:

<div id="checkboxes"> 
    <div class="ui checkbox"> 
     <input type="checkbox" name="checkboxes" value="checkbox1"> 
     <label>Branch</label> 
    </div> 
    <div class="ui checkbox"> 
     <input type="checkbox" name="checkboxes" value="checkbox2"> 
     <label>Branch</label> 
    </div> 
    <div class="ui checkbox"> 
     <input type="checkbox" name="checkboxes" value="checkbox3"> 
     <label>Branch</label> 
    </div> 
    ... 
</div> 

*すべてが最初にチェックされています**ユーザー非アクティブ化したいもののチェックを外します。私のJSファイルで

、私はチェックボックスがチェックされている取得するには、以下の機能を使用しています: - オンまたはオフ、そして一度

$('input:checkbox[name=checkboxes]:checked').each(function() { 
     // Do something with them 
    }); 

しかし、各チェックボックスが二回(一回新しい状態で現れます元の状態 - すべてチェックされています)。これは私の論理を混乱させ、チェックマークを無意味にします。

私はChromeデベロッパーツールに参加し、コンソールで同じセレクターを使用しました。手に入れたこのバック:

input#checkbox2, input#checkbox3, input#checkbox1, input#checkbox2, input#checkbox3

それは二度現れるだろう、なぜ上の任意のアイデアを、または私はここで何が欠けています(私はcheckbox1未確認でしたか)?

+0

は 'チェックボックス[]'へ 'name'の属性を変更してみてください。 – TricksfortheWeb

+0

@TricksfortheWeb '構文エラー、認識できない式:入力:チェックボックス[名前=チェックボックス[]]:チェック済み - 誤解されていない限り? – Sagar

+0

いいえ、実際の要素のname属性を 'checkboxes []'に変更し、jQueryセレクタに変更しないでください。 – TricksfortheWeb

答えて

0

を取得するには、以下の方法を使用することができ、ヘッドバンギングをたくさんした後、問題を考え出しました。 私の答えは後世のために、ここにある:

これは、セマンティックな作品に

これらのチェックボックスは、モーダルにあった

原因をセマンティック/方法を使用しての副産物です。 Semanticがモーダルを初期化すると、 はすべてのアイテムのコピーを作成し、それらをDOMの最後に追加します。

^私の問題のように、2つのコピーが表示されます。

IDで検索する場合、そのIDを持つDOM要素の最後のコピーが使用されます。私が行う変更(チェック/アンチェック)はコピーで行われます。オリジナルではありません。

:これはモーダル内のセマンティックドロップダウンにも当てはまります。

ソリューション

divにあなたのチェックボックス(またはドロップダウン)を入れて、そしてそれにIDを与える、上記の私の元のコードのように。

​​

しかし、代わりにinputnameを使用してそれらを参照することで、この親divを使用してそれらを参照してください。

$('#my_checkboxes').children().each(function() { 
    // do something 
}); 
1

あなたはとても確認するチェックボックス

$('#checkboxes input:checked').each(function() { 
    console.log($(this)) 
}); 
+0

これは、前と同じように5つの要素を表示します(実際にチェックされている2つ、その後に3つすべてが続きます) – Sagar

+0

フィドルを確認すると、コンソールには2つの要素のみが記録されます https://jsfiddle.net/v73dbjms/1/ –

+0

あなたの問題? –