2010-06-05 4 views
0

Ok donc, Im en utilisant jQuery pour faire des vérifications nom d'utilisateur et e-mail avant une inscription ...Utilisez jQuery pour activer/désactiver un bouton basé sur vars

cela crée une variable vraie ou fausse en fonction de la réponse de php.

$(document).ready(function() { 
       if (usr_checked == true) { 
        if (em_checked == true) { 
         $("#registerbttn").removeAttr("disabled"); 
        } 
       } 
       else { 
        $("#registerbttn").attr("disabled", "disabled"); 
       } 
      }); 

Comment exactement puis-je voir ces variables en direct?

Merci: D Le code ci-dessous est l'un des ensembles de code qui définit les fonctions

pic1 = new Image(16, 16); 
pic1.src = "loader.gif"; 

$(document).ready(function(){ 

$("#username").change(function() { 

var usr = $("#username").val(); 

if(usr.length >= 3) 
{ 
$("#unstatus").html('<img src="loader.gif" align="absmiddle">&nbsp;Checking availability...'); 

    $.ajax({ 
    type: "POST", 
    url: "check.php", 
    data: "username="+ usr, 
    success: function(msg){ 

    $("#unstatus").ajaxComplete(function(event, request, settings){ 

    if(msg == 'OK') 
    { 
     $("#username").removeClass('object_error'); // if necessary 
     $("#username").addClass("object_ok"); 
     $(this).html('&nbsp;<img src="accepted.png" align="absmiddle"> <font color="Green"> Available </font> '); 
     $("#registerbttn").removeAttr("disabled"); 
     var usr_checked = true; 
    } 
    else 
    { 
     $("#username").removeClass('object_ok'); // if necessary 
     $("#username").addClass("object_error"); 
     $("#registerbttn").attr("disabled", "disabled"); 
     $(this).html(msg); 
     var usr_checked = false; 
    } 

    }); 

} 

    }); 

} 
else 
    { 
    $("#status").html('<font color="red">The username should have at least <strong>3</strong> characters.</font>'); 
    $("#username").removeClass('object_ok'); // if necessary 
    $("#username").addClass("object_error"); 
    $("#registerbttn").attr("disabled", "disabled"); 
    var usr_checked = false; 
    } 

}); 

}); 
+0

Pouvez-vous montrer le réglage du code ces variables? –

+0

Eh bien, quand la fonction ajax est envoyé au script PHP, il renvoie un code, « heu, ère, erm » ils ont tous mis la variable à false, si elle retourne « ok » il met à jour toutes les données html pour dire « Non en cours d'utilisation "et définit la var à true. maintenant il y a les deux vars, quand ils sont tous deux à vrai, il doit permettre au bouton d'envoi, le code ci-dessus est ce que im en utilisant pour ce faire, mais malheureusement, il ne marche pas voir les variables vivent et mettre à jour les personnes handicapées partie si elles sont toutes les deux vraies, j'en ai besoin pour cela, – DeviledMoon

+0

Que fait la balise ''? – Anurag

Répondre

1

Je pense qu'il vaut mieux si vous ne comptez pas utiliser sur les variables et les événements personnalisés à la place. Par exemple, vous pouvez créer et lier un événement personnalisé qui est déclenché lorsque votre vérificateur ajax se termine. Voici un exemple de code qui montre comment cela pourrait fonctionner:

// on $(document).ready 
$('#username') 
    // bind to a custom event triggered when validation of username succeeded 
    .bind('checkValid', function() { 
    alert('enabling the button'); 
    $('#registerbttn').removeAttr('disabled'); 
    }) 
    // bind to a custom event triggered when validation of username failed 
    .bind('checkFailed', function() { 
    alert('disabling the button'); 
    $('#registerbttn').attr('disabled', 'disabled');  
    }); 


// In your ajax handlers (i.e. $("#unstatus").ajaxComplete), 
// if username was valid, trigger the valid event. 
// This will call the checkValid handle we declared above and 
// enable the button 
$('#username').trigger('checkValid'); 

// If the username check failed though, trigger checkFailed instead 
// which will call the handler above which disables the button 
$('#username').trigger('checkFailed'); 

Voici un échantillon de ce travail ici: http://jsfiddle.net/wU8vY/

+0

merci, me donne une idée générale de la façon de le faire. – DeviledMoon

0

Vous ne recevez pas à la variable « regarder ». Vous devez modifier les attributs au même endroit que vous avez défini usr_checked (je suppose que vous l'avez défini lorsque votre appel ajax revient).

Si vous postez votre fonction ajax, je pourrais être en mesure d'être plus précis.

Questions connexes