Necesitaba ayuda con mi botón para deshabilitarlo, si la opción seleccionada si "No" se deshabilitaría y si "Sí" se habilitaría. Estoy usando mi AJAX para solicitar la opción.
Este es mi código HTML para <option> y <button> :
<label for="select-Require-CDS" class="col-form-label">Require CDS</label> <br/> <select class="select-Require-CDS custom-select-sm col-6" id="select-Require-CDS" required> <option selected disabled value="">Select ....</option> </select> <div class="invalid-feedback"> Please select a valid option . </div> <button id="select-Yes-No" style="margin-left: 10px; ">Select</button>Este es mi código AJAX:
$.ajax({ // The url that you're going to post. This is the url that you're going to put to call the backend api, // in this case, it's https://ecoexchange.dscloud.me:8080/api/get (production env) url: "https://ecoexchange.dscloud.me:8090/api/get", // The HTTP method that you're planning to use ie // GET, POST, PUT, DELETE. In this case it's a get method, so we'll use GET method: "GET", // In this case, we are going to use headers as headers: { // The query you're planning to call; ie <query> can be UserGet(0), RecyclableGet(0), etc. query: "RequireGet()", // Gets the apikey from the sessionStorage apikey: sessionStorage.getItem("apikey") }, success: function(data, textStatus, xhr) { console.log(data); for (let option of data) { $('#select-Require-CDS').append($('<option>', { value: option.RequireOption, text: option.RequireOption })); } }, error: function(xhr, textStatus, err) { console.log(err); } });Y así es como es mi respuesta JSON:
[ { "RequireOption": "No" }, { "RequireOption": "Yes" } ]Entonces mi sitio web lo muestra así
Ahora, ¿cómo puedo decir que seleccioné la opción como "No", el botón está deshabilitado pero si "Sí" está habilitado?
¿Cómo es que si no se deshabilita también?
$('#select-Require-CDS').on('change', function(){ if($(this).val()=='Yes'){ $('#select-Yes-No').attr('disabled',false) //button is now enabled }else{ $('#select-Yes-No').attr('disabled',true) //button is now disabled } });Este es un controlador que escucha cambios en la selección. Según lo que se seleccione, adaptará la disponibilidad del botón. No se ha probado, pero debería funcionar.
He usado .on porque está agregando los atributos más tarde con ajax (más tarde = después de que dom esté listo), por lo que .change no funcionará en estas opciones