2011-10-16 10 views
8

Obtuve un botón: Javascript: cómo secuestrar el tipo de entrada = someter al hacer clic en el comportamiento?

Cada vez que hago clic en él, se envía a un formulario.

Quiero secuestrar este comportamiento, así que cuando hago clic, llama a una función JS en su lugar. ¿Cómo hago esto? He añadido:

$('input.submit').live('click', addFood); 

El problema es que aún se envía al formulario. Cuando elimino "type =" submit ", funciona.

No quiero eliminar el código HTML. También está vinculado a CSS, y no quiero cambiar el CSS porque tengo miedo de mezclarlo =)

así que la pregunta es: ¿cómo hacer para cambiar el comportamiento del botón de envío por lo que no se somete a formar, pero me llama la función de Javascript (jQuery)

+1

Vaya, me he dado cuenta de que necesitaba un "return false" en mi función addFoods, de lo contrario se llama a la función y lo somete a la forma. ¡Problema resuelto! A la cama =) –

+2

Hisoka: está bien que respondas tu propia pregunta. –

Respuesta

14

Objetivo del formulario en lugar, no el enviar botón

$("form").submit(function(e) { 

    e.preventDefault(); 
    e.returnValue = false; 

    // do things 
}); 
+3

Esta solución estaba en desuso en Jquery 1.7 – cromanelli

10

Solo por el bien de mantener esta respuesta actualizada cambio:

$("form").live('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

});

con:

$("form").on('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

});

$ (selector) .live() se desaprobó en Jquery 1.7 y se eliminó del marco en Jquery 1.9.

tope aquí tienes documentation

Cuestiones relacionadas