Enviar form en evento onChange o Submit?????

Mario
30 de Octubre del 2009
Buenas tardes,

tengo una pequeña duda.

Tengo un formulario que necesito que se envie, dependiendo de lo que ocurra, a 2 paginas distintas.
Si se produce el evento onChange de un input tipo texto a una pagina actualizar.asp y si se produce el click en el boton del formulario a otra pagina chekout.asp.
Para ello tengo una funcion:
[CODE]
function recalcula(x){
if (x == "1") {
var accion = "checkout.asp";
window.document.form1.action = accion;
document.form1.submit(); }
else {
var accion = "actualizar.asp";
window.document.form1.action = accion;
document.form1.submit(); }
}
[/CODE]

a la que llamo de esta forma cuando pierde el foco el input text:

[CODE]
<input name="quant" value="3" onChange="recalcula('2')">
[/CODE]

o de esta otra on el boton del formulario:

[CODE]
<input type="image" value="CheckOut" src="pedir.gif" onClick="recalcula('1')">
[/CODE]

Pues bien, mi problema es que me da error en document.form1.submit(); a pesar de que el formulario se llama form1. Me dice que el objeto no acepta esta propiedad o metodo.

Alguien me puede decir como hacerlo o si se puede?
Gracias.

-??§?
30 de Octubre del 2009
Tuve este mismo problema y encontré el error. Mi formulario era mas o menos así:

<form method="post" action="handler.php" name="form1">
<input type="text" name="nombre">
<input type="submit" name="submit" value="Enviar">
</form>

El problema al llamar al método del formulario submit() se da porque existe un elemento de éste (el botón submit) que lleva el mismo nombre. Por esto, es recomendable usar nombres para los elementos de los formularios que no coincidan con los nombres de sus métodos (submit, focus, etc.).

Espero les sirva... saludos

-Ðíègø§ø£ø-

eddo
30 de Octubre del 2009
Gracias Diego:

También tenia ese mismo problema y con tu respuesta lo resolvi!

gracias!!

Alejandro
30 de Octubre del 2009
En si la forma mas facil, es borrar el boton e insertarlo nuevamente y asignarle el comportamiento asociado al vbscript o javascript.
Saludos.