2017-08-04 10 views
0

この問題に関する多くの質問を読んでいますが、何をしても動作しません。チェックボックスがダイナミックIDでチェックされていることを確認します

私はそれらのような、ダイナミックなIDを持ついくつかのチェックボックスがあります。

More: 
<input type="checkbox" name="more" id="checkbox-more-285"> 
<br> Extra: 
<input type="checkbox" name="extra" id="checkbox-extra-285"> 

<button class="add_to_cart"> 
    Add to cart 
</button> 

数285は、私が他の場所で使用するものとすることができます。

その後、私はこのjQueryのを持っている:私はカートに追加]ボタンをクリックしたときにあなたは、ここにjsFiddleにhttps://jsfiddle.net/を見ることができるように

jQuery('.add_to_cart').click(function(e) { 
    e.preventDefault(); 

    if (jQuery("[id^='checkbox-more-']:checked")) { 
    console.log('1'); 
    } 

    if (jQuery("[id^='checkbox-extra-']:checked")) { 
    console.log('2'); 
    } 
    return false; 
}); 

、両方のログがコンソールにあります。

+1

[ID^= 'チェックボックスを-more-」( 'jQueryのを試してみてください。このように、テストに.lengthプロパティを追加します。 ')」)。)( ":checked") ' –

答えて

3

jQueryコレクションをテストするだけでは不十分です。これは常に真実です。あなたが使用することができます

if (jQuery("[id^='checkbox-more-']:checked").length) { // etc... 
0

いずれか

jQuery("[id^='checkbox-more-']").is(":checked") 
{ 
    console.log('1'); 
    } 

または

if($("[id^='checkbox-more-']").prop('checked') == true){ 
    console.log('1'); 
} 
+0

' prop'は最初の一致をチェックするだけで、このような 'id'を持つ可能性のある他の要素はチェックしないので、ここでは適切でないかもしれません。 – trincot

関連する問題