2011-03-27 19 views
71

Tengo dos botones en un formulario y hay que llamar a dos páginas diferentes cuando se hace clic en ellos. cuando se hace clic en el botón 1, se debe cargar page1 y cuando se hace clic en el botón 2, se debe cargar la página2. Sé cómo hacer esto en JavaScript pero no tengo ni idea de cómo hacer esto en jquery. ¿Puede ayudarme alguien?Jquery para cambiar la acción del formulario

Respuesta

5

Uso jQuery.attr() en su controlador de clic:

$("#myform").attr('action', 'page1.php'); 
18

jQuery se acaba de JavaScript, no creo muy diferente al respecto! Como haría en JS 'normal', agrega un detector de eventos a los botones y cambia el atributo de acción del formulario. En este jQuery se ve algo como:

$('#button1').click(function(){ 
    $('#your_form').attr('action', 'http://uri-for-button1.com'); 
}); 

Este código es el mismo para el segundo botón, sólo se necesita cambiar el ID de su botón y el URI en el formulario debe ser presentado a.

117

Prueba esto:

$('#button1').click(function(){ 
    $('#formId').attr('action', 'page1'); 
}); 


$('#button2').click(function(){ 
    $('#formId').attr('action', 'page2'); 
}); 
+0

gracias .......... –

9

Por el bien de la variedad:

var actions = {input1: "action1.php", input2: "action2.php"}; 
$("#input1, #input2").click(function() { 
    $(this).closest("form").attr("action", actions[this.id]); 
}); 
6
$('#button1').click(function(){ 
$('#myform').prop('action', 'page1.php'); 
}); 
4

Por favor, ver esta respuesta: https://stackoverflow.com/a/3863869/2096619

Citando Tamlyn:

jQuery (1.4.2) se confunde si tiene elementos de formulario denominados "acción". Puede evitar esto utilizando los métodos de atributo DOM o simplemente evitar tener elementos de formulario llamados "acción".

<form action="foo"> 
    <button name="action" value="bar">Go</button> 
</form> 

<script type="text/javascript"> 
    $('form').attr('action', 'baz'); //this fails silently 
    $('form').get(0).setAttribute('action', 'baz'); //this works 
</script> 
0

para cambiar el valor de acción de forma dinámica, se puede tratar a continuación código:

continuación código es si va a abrir alguna caja dailog y dentro de esa caja dailog que tiene forma y desea para cambiar la acción de eso. Utilicé el cuadro de dailog de Bootstrap y al abrir ese dailog box estoy asignando valor de acción al formulario.

$('#your-dailog-id').on('show.bs.modal', function (event) { 
    var link = $(event.relatedTarget);// Link that triggered the modal 
    var cURL= link.data('url');// Extract info from data-* attributes 
    $("#delUserform").attr("action", cURL); 
}); 

Si están tratando de cambiar la acción del formulario en la página regular, use por debajo del código de

$("#yourElementId").change(function() { 
    var action = <generate_action>; 
    $("#formId").attr("action", action); 
}); 
Cuestiones relacionadas