AnswerBun.com

Igualar valor de un input text a todos los elementos de un array

Stack Overflow en español Asked by Husdady on December 4, 2020

$(function(){

        $('button:nth-of-type(1)').on('click', function(){

        var nombre = $('#name').val();

        alert('su nombre es ' + nombre);

        });

        $('button:nth-of-type(2)').on('click', function(){

        var profesion = $('#profession').val();

        var profesiones = ['profesor','peluquero','contador','odontologo'];
        
        alert('Su profesión es ' + profesion);

         if (profesion == profesiones[0]){
        alert('Su profesion no gana mucho dinero');
        }

    });
        });
body{
background: #EDEDED;
display: flex;
justify-content: center;
align-items: center;
}
button{    
background: #ccc;
color: black;
text-decoration: none;
padding: 0.25% 5%;
margin-left: 0.5%;
border: none;
display: inline-flex;
}
button:nth-of-type(1){
margin-right: 1.5%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Nombre:&nbsp;<input id="name" type="text" placeholder="Escribe un nombre...">
<button>Enviar</button>

Profesión:&nbsp;<input id="profession" type="text" placeholder="Escribe una profesión...">
<button>Enviar</button>

Hola a todos, tengo este pequeño html que muestra dos inputs text que te piden un nombre y una profesion. Mi problema es el siguiente: tengo una condicional que dice que cuando el valor del input #profession sea igual al primer elemento del array profesiones, te muestra una alerta: ‘Su profesion no gana mucho dinero’ . Entonces ¿Cómo igualo la VAR profesion a todos los elementos del array?, es decir, que suceda lo mismo con los demás elementos del array #profession. Lo he solucionado con: if (profesion == profesiones[0] || profesion == profesiones[1] || profesion == profesiones[2] || profesion == profesiones[3]){ alert('Su profesion no gana mucho dinero'); } Ahora imaginense que ese array tuviera 40 elementos o más, no pienso estar poniendo uno por uno. Regla del programador: "Si repites demasiado una cosa, es porque algo estas mal". ¿ Entonces existe alguna alternativa para esto ?

2 Answers

Lo puedes hacer preguntando si el elemento está en el array con inArray con JQuery. Puedes ver más información en https://api.jquery.com/jquery.inarray/.

if($.inArray(profesion, profesiones) > -1){
     alert('Su profesion no gana mucho dinero');
}

$(function(){

        $('button:nth-of-type(1)').on('click', function(){

        var nombre = $('#name').val();

        alert('su nombre es ' + nombre);

        });

        $('button:nth-of-type(2)').on('click', function(){

        var profesion = $('#profession').val();

        var profesiones = ['profesor','peluquero','contador','odontologo'];
        
        alert('Su profesión es ' + profesion);

        if($.inArray(profesion, profesiones) > -1){
           alert('Su profesion no gana mucho dinero');
        }

    });
        });
body{
background: #EDEDED;
display: flex;
justify-content: center;
align-items: center;
}
button{    
background: #ccc;
color: black;
text-decoration: none;
padding: 0.25% 5%;
margin-left: 0.5%;
border: none;
display: inline-flex;
}
button:nth-of-type(1){
margin-right: 1.5%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Nombre:&nbsp;<input id="name" type="text" placeholder="Escribe un nombre...">
<button>Enviar</button>

Profesión:&nbsp;<input id="profession" type="text" placeholder="Escribe una profesión...">
<button>Enviar</button>

Correct answer by Carmen on December 4, 2020

Partimos de que:

  • En realidad no necesitas JQuery para dicha operación
  • Nos podemos auxiliar de: Array.includes
  • El método anterior retornará true o false en concecuencia de que exista o no el elemento dinámico dentro del array
  • Dentro de un condicional solo estableces las posibles salidas para cada uno de los casos

Quedando de esta forma:

    if (!profesiones.includes(profesion)) {
      console.log(`No tengo registrada la profesión: ${profesion}`);
    } else {
      alert('Ganas poco');
    }

Answered by BetaM on December 4, 2020

Add your own answers!

Related Questions

Cuándo tipar en typescript y cuándo no?

1  Asked on January 31, 2021 by air

 

Dudas con la integración de pasarela de pago

0  Asked on January 30, 2021 by beat-garrido

       

Error spring mvc y tomcat

1  Asked on January 30, 2021 by daniel2017

       

Fragment que cambia solo

0  Asked on January 30, 2021 by slock-mr

   

Sorting in list

1  Asked on January 29, 2021 by user182700

   

Insertar variables PHP en SQL a mi base de datos

2  Asked on January 28, 2021 by adiel

     

Web scraping profundo en R, producto por producto

1  Asked on January 28, 2021 by javi-jerez

     

Error Invalid shorthand property initializer

1  Asked on January 28, 2021 by cristian-saavedra

   

consulta json php con resultados duplicados

1  Asked on January 27, 2021 by mono101

       

poner un borde a todos las regiones de un mapa d3.js

1  Asked on January 27, 2021 by user5115790

 

Intento insertar registros con AJAX en php

1  Asked on January 25, 2021 by sergio-martinez

   

¿Porqué se me genera un doble foco en la ventana?

1  Asked on January 25, 2021 by cesar-andi

       

Problema con tabla dinamica en react

1  Asked on January 24, 2021 by javier-richards

     

Problemas al ejecutar Procedimiento almacenado dentro de un loop

1  Asked on January 24, 2021 by jhon-alexander-jimenez-morales

       

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir