Checkbox checked dependiendo del valor en un input

  • Autor Autor ImportasaMX
  • Fecha de inicio Fecha de inicio
I

ImportasaMX

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola, foreros.

Tengo una duda, estoy haciendo un formulario y tengo tres checkbox, lo que quiero es que dependiendo del valor puesto en cierto input, uno de los checkbox u otro se seleccione automáticamente.

Input de ejemplo:
¿Tu edad es? []

Checkbox de ejemplo:
Checkbox 1 (se seleccionará si la edad es menor a 10)
Checkbox 2 (se seleccionará si la edad es igual a 10)
Checkbox 3 (se selecionará si es mayor a 10)

Gracias.
 
Prueba usando keyup para detectar cuando se escribe en el input, y depues ejecutas una función que detecte el valor y activas el check.
JavaScript:
var inputC = document.getElementById("myimput");
inputC.addEventListener("keyup", function(){checkB(inputC.value)},false);

//ckeckboxs
var ck1 = document.getElementById("check1"),
    ck2 = document.getElementById("check2"),
    ck3 = document.getElementById("check3");

function checkB(value){
   if(value < 10) {
       ck1.checked=true;
   } else if (value  == 10) {
       ck2.checked=true;
   }
}
 
Gracias, Stron. ¿En lugar del checked, se puede incluir la función "click"? y si sí, cómo sería el código en este caso?
 
Gracias, Stron. ¿En lugar del checked, se puede incluir la función "click"? y si sí, cómo sería el código en este caso?
No entiendo bien tu pregunta... con el codigo que te pase no será necesario hacer click. bastará con poner el numero en el input, y cuando el código compruebe que cumple con una de las condiciones se marcará el check que corresponde.
 
No entiendo bien tu pregunta... con el codigo que te pase no será necesario hacer click. bastará con poner el numero en el input, y cuando el código compruebe que cumple con una de las condiciones se marcará el check que corresponde.
Lo que pasa que tengo este código:

JavaScript:
$(document).ready(function() {
    $('input[name="goal"]:radio').click(function(){
        switch($(this).val()) {
        case "check1":
  document.getElementById("uno").style.display="block";
    document.getElementById("dos").style.display="block";
    document.getElementById("tres").style.display="none";
            break;
        case "check2":
  document.getElementById("uno").style.display="none"; 
            
            break;
        case "check3":
  document.getElementById("uno").style.display="block";
  document.getElementById("dos").style.display="block";
  document.getElementById("tres").style.display="none";
            break;            
        }
    });
});

Con el que dependiendo del checkbox al que hagan clic aparece o desaparecen bloques. Pero si se activan por el código que me proporcionaste, este código no sirve ya que solo sirve si se le da clic manualmente al checkbox y lo primero que se me ocurrió fue cambiar el código que me proporcionaste para que la orden fuese "hacer clic" y no poner "checked", aunque no sé si haya otra manera, por ejemplo poniendo ":checked" en algún lado del código de este comentario... gracias por la ayuda.
 
Lo que pasa que tengo este código:

JavaScript:
$(document).ready(function() {
    $('input[name="goal"]:radio').click(function(){
        switch($(this).val()) {
        case "check1":
  document.getElementById("uno").style.display="block";
    document.getElementById("dos").style.display="block";
    document.getElementById("tres").style.display="none";
            break;
        case "check2":
  document.getElementById("uno").style.display="none";
          
            break;
        case "check3":
  document.getElementById("uno").style.display="block";
  document.getElementById("dos").style.display="block";
  document.getElementById("tres").style.display="none";
            break;          
        }
    });
});

Con el que dependiendo del checkbox al que hagan clic aparece o desaparecen bloques. Pero si se activan por el código que me proporcionaste, este código no sirve ya que solo sirve si se le da clic manualmente al checkbox y lo primero que se me ocurrió fue cambiar el código que me proporcionaste para que la orden fuese "hacer clic" y no poner "checked", aunque no sé si haya otra manera, por ejemplo poniendo ":checked" en algún lado del código de este comentario... gracias por la ayuda.
Lo único que se me ocurre es que el switch lo pongas como una función independiente, y la llames cada que se marque un checkbox, te pongo un ejemplo de como quedaría:

JavaScript:
$(document).ready(function() {

    $('input[name="goal"]:radio').click(function(){

   validCheck($(this).val());

   });

});



function validCheck(value){



switch(value) {

        case "check1":

  document.getElementById("uno").style.display="block";

    document.getElementById("dos").style.display="block";

    document.getElementById("tres").style.display="none";

            break;

        case "check2":

  document.getElementById("uno").style.display="none";

           

            break;

        case "check3":

  document.getElementById("uno").style.display="block";

  document.getElementById("dos").style.display="block";

  document.getElementById("tres").style.display="none";

            break;          

        }

}



// mi codigo con tu función

var inputC = document.getElementById("myimput");
inputC.addEventListener("keyup", function(){checkB(inputC.value)},false);

//ckeckboxs
var ck1 = document.getElementById("check1"),
    ck2 = document.getElementById("check2"),
    ck3 = document.getElementById("check3");


// comprobamos los numeros, y ejecutamos la funcion con el checkbox que se activo.

function checkB(value){

   if(value < 10) {

       ck1.checked=true;

      validCheck("check1");

    ck2.checked=false;  // usamos false para desmarcar los demas checkbox

   } else if (value  == 10) {

       ck2.checked=true;

       validCheck("check2");

   }

}
 

Temas similares

Atrás
Arriba