-1
votes

Pourquoi l'entrée ne change jamais l'attribut désactivé?

Je veux activer / désactiver un type d'entrée = "numéro" code> mais il ne change jamais.

Il démarre désactivé code> et quand j'appuie une entrée Type = "radio" code> Je veux l'activer. p> xxx pré>

Je vois beaucoup de gens ont ce problème et ils essaient généralement avec $ (' entrée '). Attr ("désactivé", vrai); code> mais échoue aussi. p>

la fonction jQuery, en utilisant .prop ("désactivé") code> : p> xxx pré>

snippet (la case à cocher ne fonctionne pas car j'utilise un widget UI jquery, mais ils fonctionnent bien dans mon code): P> 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>


10 commentaires

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 () et attr () , mais ne fonctionne pas


Quelle 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 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 fonctionne bien.


Oui, le problème est le widget jQuery ui je ne sais pas pourquoi des accidents


3 Réponses :


0
votes

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();
}); 


0 commentaires

-1
votes

Vous pouvez simplement utiliser .attr ("désactivé", "désactivé") pour le rendre désactivé et .reMOVEATTR ("désactivé") pour l'activer.


1 commentaires

La documentation de JQuery recommande d'utiliser Prop pour les attributs binaires.



0
votes

comme @hertic Singe dit que le problème était la fonction jQuery Caeckeboxradio code>.

Oui, il a été défini, mais le problème était que la classe filtros_mapa_ruta ​​code> a le Entrée code> aussi, et cela l'a fait échouer. p>

La solution consistait à appeler la bonne classe, uniquement avec la case à cocher. P>

$(".filtros_mapa_ruta_checkb" ).checkboxradio( "disable");


0 commentaires