Buenas me gustaría saber una forma de conseguir que al pulsar un botón me devuelva por ejemplo 'a'. a continuación si pulso de nuevo que me devuelva 'b'. y repetir el proceso.
Todo ello en javascript lo he intentado de mil y una formas y ya me quedo sin ideas.
Pense esto pero obviamente no funciona.
<script>
function valor(values){
value=values.split(",");
for(var i=0;i<value.length;i++){
if (value=='A'){
var value='B';
}else if(value=='B'){
var value='A';
}
alert(value);
i++;
}
}
</script>
<body>
<input type="button" onClick="valor('ASC,DESC');" value="valor">
</body>
tienes varias formas, una sería hacer una variable global para darle el valor, otra es pegarlo a la variable window para hacerla global dinamicamente, otra forma es pasarselo a algún campo asociado al boton para que el sea quien lo guarde
Algún ejemplo por favor?, ya que lo intenté con variable global y tampoco me salió anteriormente. :-[
para mi esmas facil que el botón guarde el estado, así que lo haré así
fijate que paso un argumento "this" que referencia al mismo botón y que agrego una propiedad que no interferiá con el funcionamiento del input
<input type="button" onClick="valor(this);" value="valor" estado="A">
con manejo del DOM es cosa de acceder al estado para leerlo y cambiarlo, usando como ancla el argumento pasado
function valor(elemento) {
var att = elemento.getAttribute("estado");
alert(att)
if(att=='A'){
elemento.setAttribute("estado","B");
}else{
elemento.setAttribute("estado","A");
}
Gracias resuelto del siguiente modo:
<script>
window.estado=0;
function verificador(estado)
{
if (estado==0)
{
alert("DESC");
window.estado++;
}
else if (estado==1)
{
alert("ASC");
window.estado=0;
}
}
</script>
<body>
<button onclick="verificador(estado);">PRUEBA</button>
</body>
el window.estado hace el trabajo, te doy 2 correciones
no estás usando estado, no lo necesitas como parametro, puedes quitarlo en
function verificador()
y
onclick="verificador();"
otra cosa, si vas a manejar solo 0 y 1 no uses ++, podría causarte un conflicto si tu codigo se vuelve más complejo, usa solo estado bien conocidos, tambien, si no vas a usar más casos de if, no es necesario el else if, un simple else hará el trabajo y ayudará a reducir errores, para esto
if (estado==0)
{
alert("DESC");
window.estado=1;
}
else
{
alert("ASC");
window.estado=0;
}
Para crear atributos personalizados en html se utiliza data-nombre, reemplazas nombre por el nombre del parametro personalizado, sin espacios ni guiones adicionales, solo letras y números.
Por ejemplo:
<input type="button" onclick="valor(this);" value="valor" data-estado="A">
Otra cosa, onClick no existe como atributo según el estandar de la w3c, que los navegadores lo ejecuten es otra cosa pero no están obligados a hacerlo, el estandar a partir de xhtml hacia arriba dice que todos los nombres de etiquetas y atributos van en minusculas, las mayusculas no debieran ser interpretados.
Cita de: WHK en 27 Febrero 2017, 00:11 AM
Para crear atributos personalizados en html se utiliza data-nombre, reemplazas nombre por el nombre del parametro personalizado, sin espacios ni guiones adicionales, solo letras y números.
Por ejemplo:
<input type="button" onclick="valor(this);" value="valor" data-estado="A">
Otra cosa, onClick no existe como atributo según el estandar de la w3c, que los navegadores lo ejecuten es otra cosa pero no están obligados a hacerlo, el estandar a partir de xhtml hacia arriba dice que todos los nombres de etiquetas y atributos van en minusculas, las mayusculas no debieran ser interpretados.
:silbar: tengo ue retomar un poco el studio de los standards! jejeje gracias por la aclaración
Gracias por las correciones y ayudas. Saludos