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: <input id="name" type="text" placeholder="Escribe un nombre...">
<button>Enviar</button>
Profesión: <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 ?
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: <input id="name" type="text" placeholder="Escribe un nombre...">
<button>Enviar</button>
Profesión: <input id="profession" type="text" placeholder="Escribe una profesión...">
<button>Enviar</button>
Correct answer by Carmen on December 4, 2020
Partimos de que:
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
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP