J'ai une page qui crée des lignes, qui incluent des cases à cocher qui ont des identifiants non-séquentiels. Selon les données de la base de données, elles doivent parfois être vérifiées sur onLoad. Le PHP parcourt les données en créant la page.dans la page jquery non tir
Le problème: la jquery que j'ai dans la boucle ne fonctionne pas. Il ne vérifie pas la case à cocher ou ne déclenche pas l'événement de modification. Il ne me montre pas non plus les consoles.logs que j'ai ici. Si je coche la case à cocher inline, cela fonctionne, mais il ne déclenche pas l'événement change et DOIT faire fonctionner la page correctement.
est ici un code:
<? foreach($weekly as $w){ ?>
// create the row
<input type="checkbox" id="slW_4" name="slW_4" <? if($w['current_sl_id']){echo 'checked';} ?>>
<? if($w['current_sl_id']){ ?>
<script language="text/javascript">
$(document).ready(function(){
$('#slW_4').prop('checked', true);
console.log('should have checked the checkbox: '+ $('#slW_4').is(':checked'));
$('#slW_4').trigger("change");
console.log('should have triggered change');
});
</script>
<? } ?>
<? } ?>
Votre gestionnaire doc.ready est à l'intérieur de la boucle = pas correct – adaam
Je recommande vivement de factoriser votre javascript en dehors de cette boucle. Dans le pire des cas, vous devrez relouer '$ weekly' plus tard dans le code. –
Vous obtenez également le même ID sur chaque boucle. '$ ('# slW_4')' obtiendra seulement le premier élément avec cet ID. –