2010-04-20 22 views
6

Estoy tratando de tener la acción de un formulario HTML creado cuando el usuario hace clic en el botón Enviar.Jquery: ¿crear dinámicamente acción de formulario en submit?

Así que el usuario rellena un formulario, hace clic en enviar, luego la acción se genera y luego en realidad se envía. La razón es que el formulario tiene muchas opciones que se pasarán a un script.

¿Cómo podría hacer esto con Jquery?

+0

voy advierten que piensen en lo que sucede cuando el usuario tiene JS discapacitados. El formulario todavía se enviará, pero sin que se modifique la acción del formulario. ¿Esto rompe tu script del lado del servidor? – josh3736

+1

Hola, normalmente no confiaría en JS para la funcionalidad central, pero esto es solo para una herramienta interna que estoy construyendo, así que no es un problema. – Probocop

Respuesta

11

no probado, pero esto se debe, al menos, conseguir que en su camino:

$('#myForm').submit(function (event) 
{ 
    var action = ''; 
    // compute action here... 
    $(this).attr('action', action); 
}); 
+0

Perfecto, gracias! – Probocop

3

Uso jQuery submit evento:

$(document).ready(function() { 
    $('#yourFormId').submit(function() { 
    $(this).attr('action', 'dynamicallyBuildAction'); 
    return false; 
    }); 
}); 
+0

Perfecto, gracias! – Probocop

0

La solución Javascript normal tendría una función:

function changeAction() { 
    this.action = 'the dynamic action'; 
    return true; 
} 

En el formulario, establecería el evento onsubmit:

<form ... onsubmit="return changeAction();"> 

a hacer lo mismo usando jQuery sería:

$(function(){ 
    $('IdOfTheForm').submit(function(){ 
    this.action = 'the dynamic action'; 
    return true; 
    }); 
}); 
Cuestiones relacionadas