2012-05-24 14 views
8

tengo la siguiente entrada:Hacer una entrada de no-hacer clic en enviar

<input type="submit" name="next" value="Next"> 

¿Cómo voy a hacer este artículo no-hacer clic a través de jQuery? (es decir, solo se puede hacer clic en después de se cumplen ciertos criterios de validación)?

Aquí es un seguimiento a esta pregunta: Make a submit clickable after validations are met

+3

Si se trata de 'después' de cierta validación, ¿por qué no empezar con agregar 'disabled =" disabled "' en su marcado, y eliminarlo una vez que la validación se haya ejecutado con éxito? – ahren

+0

@ahren porque eso no es lo que él pidió. – Ohgodwhy

+1

Duplicado de todos modos: http://stackoverflow.com/questions/1414365/how-to-disable-an-input-with-jquery – ahren

Respuesta

8

2 Demos Demo 1 click here:oDemo 2 click here:

así que todo lo que necesita es para comprobar si la validación se realiza correctamente de no.

es decir if (notValid) mandril en el siguiente código y que desactivará el botón. o mejor aún, comience con el botón deshabilitado next.

Para permitir que pueda establecer la propiedad como falsa, estoy seguro de que tiene una buena idea, de lo contrario, proporcionar más código; Me complace ayudarte más. B-)

Espero que esto ayude!

$("#submit").prop('disabled', true);​ 

O

$("input[type='submit']").prop('disabled', true);​ 
+0

$ ("# submit")? es enviar una identificación? –

+0

HIya @vlzvl Hice eso como extras, ver la segunda demostración también, por favor, solo para darles más ideas para la solución que el que pregunta está buscando :) –

+0

acabo de ver, solo edítelo aquí también :) –

3
$('input[name="next"]').prop('disabled', true); 
+0

+1 =) para ti también bruv! –

2

que puede utilizar:

$("input[type=submit][name='next']").attr("disabled", "disabled"); // unclickable 

$("input[type=submit][name='next']").removeAttr("disabled"); // clickable 
0

Desactivación de un elemento de entrada no impide constantemente eventos de clic o su propagación adicional en todos los navegadores.

Independientemente, sería apropiado simplemente devolver false si la validación falla, por lo que una acción (es decir, un envío de formulario) no se realiza. Esto evitará que la forma de ser presentado, y dado que el controlador de clic todavía se ejecuta usted sería capaz de proporcionar datos al usuario acerca de por qué la presentación falló:

$("#submit").click(function(){ 
    var isValid = true; 
    /*perform validation checks, changing isValid value to false when needed*/ 
    return isValid; //will return false if validation fails etc. 
}); 
Cuestiones relacionadas