2009-08-06 13 views
32

Tengo una forma sencilla de comprobar el valor de código postal introducido por el usuario frente a una variable,cómo deshabilitar botón de enviar con jQuery

Estoy tratando de desactivar el botón de enviar y hacer el cheque y dar alerta mensaje, no puedo entender lo que estoy haciendo mal, cualquier ayuda sería apreciada.

<form id="post_code"> 
     <input name="textfield" type="text" id="postcode" size="14" maxlength="8" /> 
     <input type="image" id="submit_postcode" src="images/B_go.png" alt="Submit Postcode" width="59" height="24" border="0" /> 
    </form> 


$(function() { 

    $('form#post_code').submit(function() { 

    var entered_post_code = $('form#post_code input#postcode').val(); 
    var post_code = "CV"; 
    if (entered_post_code == post_code) { 
     alert("post code is ok"); 
     return true; 
    }else { 
     alert("post code is not ok"); 
     return true; 
    } 
    return false; 
}); 

});

+0

http://stackoverflow.com/questions/1594952/jquery-disable-enable-submit-button –

Respuesta

-3
//disable 
$('#submit_postcode').attr('disabled', true); 

//re-enable 
$('#submit_postcode').removeAttr('disabled'); 
+0

Hola, es el código de arriba para ser reemplazado por $ ('form # post_code'). submit (function() {} gracias – amir

+2

atributo desactivado debe establecerse en 'disabled' no 'verdadero' – David

+2

David, o bien trabaja mi amigo – redsquare

4
$('#submit_postcode').attr('disabled', 'disabled'); 
73

El W3C recomienda establecer ese atributo a discapacitados = "desactivado", por lo que:

$('#submit_postcode').attr('disabled', 'disabled'); 

volver a habilitar se puede hacer mediante la eliminación del atributo:

$('#submit_postcode').removeAttr('disabled'); 

Al establecer el atributo en cualquier valor, se desactiva, incluso .attr ('disabled', 'false'), por lo que debe eliminarse.

+0

A partir de jQuery 1.7, se recomienda utilizar ".prop()" y ".removeProp()" en lugar de attr. De lo contrario, la respuesta sigue siendo perfecta. – Rap

0
var entered_post_code = $('form#post_code input#postcode').val(); 
// rewrite as 
var entered_post_code = $("#post_code input[id=postcode]").val(); 

Debe devolver el valor falso si el código postal no es correcto. ¿no?

probablemente su si nunca se resuelve como verdadero, y siempre devuelve como falso. El uso de la función submit() es correcto.

1

Si la verificación coincide, devuelve verdadero, y si no coincide ... también devuelve verdadero. La línea return false nunca se alcanza.

Probablemente desee cambiar una de sus palabras a falso y eliminar la línea fuera del bloque if/else.

1

Este es el código que utilizo para desactivar o volver a activar un control:

function handleControlDisplay(className, foundCount, checked) { 



    var button = jQuery(className); 



    if (foundCount > 0 && foundCount == checked) { 

     // enable 

     button.removeAttr("disabled"); 

    } 

    else { 

     // set the disabled attribute 

     button.attr("disabled", "true"); 

    }; 

} 
Cuestiones relacionadas