2011-08-23 82 views
6

Hola, estoy teniendo algunos problemas para hacer que esto funcione, bastante simple, todo lo que quiero hacer es mostrar un div una vez que se envíe mi formulario html.Ocultar/Mostrar Div después de enviar formulario?

<head> 

<script type="text/javascript"> 
function showHide() { 
    var div = document.getElementById(hidden_div); 
    if (div.style.display == 'none') { 
    div.style.display = ''; 
    } 
    else { 
    div.style.display = 'none'; 
    } 
} 
</script> 

</head> 


<body> 

<form method="post" name="installer"> 

<label>Home Keyword</label> 
<br /> 
<input type="text" name="hello" value=""> 
<br /> 
<input type="submit" value="" name="submit" onsubmit="showHide()"> 

</form> 

<div id="hidden_div" style="display:none"> 
<p>Show me when form is submitted :) </p> 
</div> 

</body> 

Cualquier ayuda sería muy apreciada gracias :)

+0

Mover el atributo onsubmit al formulario. Además, no use "enviar" como nombre de control de formulario ya que sombrea el método de envío del formulario. En lo anterior, * form.submit * hará referencia al control, no al método, por lo que llamarlo generará un error. – RobG

Respuesta

16

Creo que sólo se está perdiendo entre comillas "hidden_div" en su llamada document.getElementById("hidden_div")!

Pero en realidad, su página probablemente está publicando, restableciendo el estado de la página y dejando hidden_div aparentemente siempre en un estado oculto - ¿tiene la intención de manejar el envío del formulario a través de AJAX?

Si desea ver el comportamiento previsto, debe mover la llamada showHide() al elemento <form>, y volver falsa después de que:

<form method="post" name="installer" onsubmit="showHide(); return false;"> 

y dejar el botón de enviar como:

<input type="submit" value="" name="submit" /> 

También tenga en cuenta que no ha cerrado automáticamente la etiqueta del botón <input />, ni ha dado ningún texto para mostrar dentro de ella.

+0

Gracias Cory sí que parece ser el truco y jaja sí, tengo las citas dentro de mi código original, pero se perdieron en la traducción, creo que mi café necesita más relleno: P – Jessica

+0

No hay necesidad de "cerrar" la entrada etiqueta, el OP no ha indicado que se está utilizando XHTML y es extremadamente raro usarlo en la web. – RobG

+0

@RobG: Lo deduje del hecho de que ella estaba haciéndolo con las etiquetas '
', pero podría estar en lo cierto. –

2

que necesita para poner showhide función en forma onsubmit en lugar de input

<form method="post" name="installer" onsubmit="showHide()"> 

también se echa en falta presupuestos como @Cory mencionó

Cuestiones relacionadas