Je veux activer / désactiver un type d'entrée Il démarre Je vois beaucoup de gens ont ce problème et ils essaient généralement avec la fonction jQuery, en utilisant snippet (la case à cocher ne fonctionne pas car j'utilise un widget UI jquery, mais ils fonctionnent bien dans mon code): P> p> = "numéro" code> mais il ne change jamais. désactivé code> et quand j'appuie une entrée Type = "radio" code> Je veux l'activer. p> $ (' entrée '). Attr ("désactivé", vrai); code> mais échoue aussi. p> .prop ("désactivé") code> : p> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-2" id="filter_container">
<!-- FILTROS-->
<legend>Filtros mapa: </legend>
<label for="radio_ult_pos">Ãltima posición</label>
<input type="radio" name="radio_select" class="filtros_mapa" id="radio_ult_pos" checked>
<label for="radio_ruta">Ruta</label>
<input type="radio" name="radio_select" class="filtros_mapa" id="radio_ruta">
<legend id="legend_filtro_datos">Filtros datos: </legend>
<label for="checkbox-2">Goat tracker 1</label>
<input type="checkbox" name="GOAT_TRACKER1" class="filtros_mapa filtros_mapa_ruta filtros_mapa_ruta_checkb optionNodeFilter" id="checkbox-2" disabled>
<label for="checkbox-3">Goat tracker 2</label>
<input type="checkbox" name="GOAT_TRACKER2" class="filtros_mapa filtros_mapa_ruta filtros_mapa_ruta_checkb optionNodeFilter" id="checkbox-3" disabled>
<label for="checkbox-4">Goat tracker 3</label>
<input type="checkbox" name="GOAT_TRACKER3" class="filtros_mapa filtros_mapa_ruta filtros_mapa_ruta_checkb optionNodeFilter" id="checkbox-4" disabled>
<input type="number" class="form-control filtros_mapa_ruta" id="n_nodes_ruta" value="2" min="1" disabled>
<button type="button" class="btn btn-success" id="filtrar_btn_map">Filtrar</button>
</div>
3 Réponses :
Dans JS, vous pouvez définir un écouteur d'événement sur le conteneur DIV et si les boutons radio sont cliqués, vous pouvez définir la propriété désactivée code> sur l'entrée sur true ou false. const input = document.getElementById("n_nodes_ruta");
function checkboxController() {
document.querySelector('.col-2').addEventListener('click', () => {
if(event.target.id === "radio_ult_pos") {
input.disabled = true;
}
else if(event.target.id === "radio_ruta") {
input.disabled = false;
}
})
}
$(document).ready(function() {
checkboxController();
});
Vous pouvez simplement utiliser .attr ("désactivé", "désactivé") code> pour le rendre désactivé et .reMOVEATTR ("désactivé") code> pour l'activer. p>
La documentation de JQuery recommande d'utiliser Prop code> pour les attributs binaires.
comme @hertic Singe dit que le problème était la fonction jQuery Oui, il a été défini, mais le problème était que la classe La solution consistait à appeler la bonne classe, uniquement avec la case à cocher. P> Caeckeboxradio code>. filtros_mapa_ruta code> a le Entrée code> aussi, et cela l'a fait échouer. p> $(".filtros_mapa_ruta_checkb" ).checkboxradio( "disable");
Avez-vous vu Stackoverflow.com/questions/1414365 / ...
Oui, c'est pourquoi je dis que beaucoup de gens ont ce problème et pourquoi j'utilise
Prop () code> etattr () code>, mais ne fonctionne pasQuelle est la vision de JQuery que vous utilisez?
jquery-3.4.1.min.js
JS pourrait-il être une solution pour vous, ou vous voulez aller avec jQuery?
Yess, pas de problème :)
Consultez ma réponse.
La fonction JQuery
CaeckboxRadio code> n'est pas définie, ce qui provoque une erreur dans votre extrait. Avez-vous des erreurs similaires dans votre code réel?Avec ces deux lignes commentées, le code
Prop code> fonctionne bien.Oui, le problème est le widget code> jQuery ui code> je ne sais pas pourquoi des accidents