Récemment, j'ai rencontré un problème dans le projet. Lors du test de la fonction de sélection/désélection, lorsque la boîte parent est sélectionnée/désélectionnée pour la première fois, l'état entièrement sélectionné/non sélectionné de la sous-boîte peut être synchronisé, puis la boîte parent peut être cliquée, le sous-cadre ne répond plus. La structure générale du code original est la suivante :
'input[name="xxx[]"]').attr("checked"
Étape 1 Essayez la vague frontale :
<. 🎜>
function selectAll(obj){ if(obj.checked) { $('input[name="xxx[]"]').attr("checked", true); } else { $('input[name="xxx[]"]').removeAttr("checked"); } }
Étape 2. Après une recherche rapide sur Internet, j'ai constaté que ce problème est relativement courant. Parmi les personnes ayant rencontré ce problème, je devrais être à des milliers de kilomètres. J'en ai cliqué sur quelques-uns et j'ai dit en gros que l'utilisation de prop au lieu de attr pouvait résoudre le problème :
Cependant, la version utilisée dans le projet est inférieure. que 1.6 et on m'a dit que la dernière version était préférable de ne pas changer la version et de la supprimer.Étape 3. Il n'y a pas d'autre choix que d'abandonner JQuery... Essayez d'utiliser la méthode d'écriture js native, le code est le suivant :
function selectAll(obj){ var xxx = document.getElementsByName("xxx[]"); if(obj.checked) { for(var i = 0;i < xxx.length;i++) { xxx[i].checked = true; } } else { for(var i = 0;i < xxx.length;i++) { xxx[i].checked = false; } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!