2017-06-06 4 views
1

Ich möchte überprüfen, dass mindestens ein Kontrollkästchen aktiviert ist. Die Kontrollkästchen werden dynamisch hinzugefügt, sodass die genauen IDs nicht bekannt sind. Ich weiß nur, dass sie mit dem gleichen ID-Namen beginnen, z. "Sameid_xxx", "Sameid_xx1" "Sameid_xx2" etc ..jquery validate check mindestens ein Kontrollkästchen mit dynamischen ID

hier ist das, was ich habe:

$cbx_group = $('input[Id^="Sameid"]'); 

$cbx_group.prop('required', true); 
if ($cbx_group.is(":checked")) { 
    $cbx_group.prop('required', false); 
} 

das Problem hier ist, dass diese alle Kontrollkästchen erforderlich macht. Ich auch dont Form Validator

+0

ihnen die gleiche Klasse zuweisen und dann haben Sie eine 'each' Schleife über sie. –

Antwort

1

Verwenden $cbx_group.is(":checked") wie unten: -

Der Code unten wird zwei Dinge tun: -

1. Entfernen Sie required aus allen Kontrollkästchen, wenn eins überprüft wird.

2. Fügen Sie required wieder zurück zu allen Kontrollkästchen, wenn alle Kontrollkästchen deaktiviert sind.

Code: -

$cbx_group = $('input[Id^="Sameid"]'); 
 
$cbx_group.prop('required', true); 
 
$cbx_group.on('click',function(){ 
 
    if($cbx_group.is(":checked")) { 
 
    $cbx_group.prop('required', false); 
 
    }else{ 
 
    $cbx_group.prop('required', true); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" id="Sameid_XXX">1<br> 
 
<input type="checkbox" id="Sameid_XX1">2<br> 
 
<input type="checkbox" id="Sameid_XX2">3<br> 
 
<input type="checkbox" id="Sameid_XX3">4<br>

Referenz genommen: - https://stackoverflow.com/a/39849541/4248328

+0

THat arbeitete. danke – Kimos

+0

@Kimos froh, Ihnen zu helfen. Prost :):):) –

0

Sie haben die Anzahl der Kontrollkästchen überprüfen Länge checked mit

if($cbx_group.is(":checked").length > 0)) 
{ 
    $cbx_group.prop('required', false); 
} 
0

Sie können versuchen:

Verwenden Sie attribute contains selector. -Link: http://api.jquery.com/attribute-contains-selector/

function test() { 
 
$cbx_group = $('input[Id*="Sameid"]'); 
 

 
$cbx_group.prop('required', true); 
 
if ($cbx_group.is(":checked")) { 
 
    $cbx_group.prop('required', false); 
 
    console.log('checked'); 
 
} else { 
 
console.log('not checked'); 
 
} 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" id="Sameid1"> 
 
<input type="checkbox" id="Sameid2"> 
 

 
<button id="one" onclick="test()">Click</button>

Verwandte Themen