2010-08-13 7 views
-1

J'ai eu un problème avec mon code de jquery. Mon code fonctionne bien excepté la partie d'alerte dans l'état d'IF.Le code de jquery ne fonctionnait pas (pour l'alerte)

$('#datepicker').datepicker({ onSelect: function(dateStr) { 
     var url = 'GetExchangeRate'; 
     var sellingRateValue; 
     var buyingRateValue; 
     $('#Duedate').val(dateStr); 
     $.post(url, { dateToGet: dateStr }, 
    function(data) { 

     var dr = $('#Dollar').val; 
     var br = $('#BuyingRate').val; 
     var sr = $('#SellingRate').val; 
     if ((dr == null || dr.length < 1) && (br == null || br.length < 1) && (sr == null || sr.length < 1)) { 
      alert("Please enter the exchage for today."); 
      $('#Dollar').val(''); 
      $('#BuyingRate').val(''); 
      $('#SellingRate').val(''); 
      return false; 
     } 
     else { 
      $('#Dollar').val(data.DollarRate); 
      $('#BuyingRate').val(data.SellingRate); 
      $('#SellingRate').val(data.BuyingRate); 

      //alert(data.CurrentDate); 


     } 
    }, 'json'); 
    } 
    }); 

Voici une partie de code qui ne fonctionne pas.

if ((dr == null || dr.length < 1) && (br == null || br.length < 1) && (sr == null || sr.length < 1)) { 
      alert("Please enter the exchage for today."); 
      $('#Dollar').val(''); 
      $('#BuyingRate').val(''); 
      $('#SellingRate').val(''); 
      return false; 
+2

Lorsque vous dites que cela ne fonctionne pas bien dans la partie d'alerte IF, que voulez-vous dire? Est-ce que la partie ELSE fonctionne toujours? –

+0

Lance-t-il une erreur javascript? –

+0

Que voulez-vous dire, ne fonctionne pas? Comment ça ne marche pas? Un message d'erreur est-il indiqué? Qu'attendez-vous qu'il fasse? –

Répondre

4

Essayez:

function(data) { 

     var dr = $('#Dollar').val(); 
     var br = $('#BuyingRate').val(); 
     var sr = $('#SellingRate').val(); 

avec() à la fin.

+1

+1 pour une bonne prise – PHP

+0

án: je ne sais pas quel est le problème ..... votre code de suggestion ne fonctionne pas .. – MikMark

+0

Continuons à chercher! (Utilisez-le avec les parenthèses de toute façon) –

1

Bien que je ne sois pas entièrement sûr de ce que vous voulez faire, la logique peut être un peu off. Vous devez d'abord appliquer le correctif de Sebastian et éventuellement repenser la condition de votre instruction if.

if ( (dr == null || dr.length < 1) 
     && (br == null || br.length < 1) 
     && (sr == null || sr.length < 1)) { 

    alert("Please enter the exchage for today."); 
    $('#Dollar').val(''); 
    $('#BuyingRate').val(''); 
    $('#SellingRate').val(''); 
    return false; 
} 

La logique du si des moyens qui ne réinitialisent ces champs si tous les champs sont vides, ce qui ne semble pas de sens pour moi. Je devine ce que vous voulez dire, "réinitialiser tous ces champs tant que l'un d'eux est vide."

if ( (dr == null || dr.length < 1) 
     || (br == null || br.length < 1) 
     || (sr == null || sr.length < 1)) { 

Side note:

Je pense que vous devriez changer votre condition,

if (!dr && !br && !sr) {...} // your original code 

ou

if (!dr || !br || !sr) {...} // With my fix 
+0

Je suis d'accord. @ Mik-Mark, les lignes à l'intérieur de la condition réinitialisent le contenu de trois éléments d'entrée que vous venez de trouver vides dans votre exemple. –

+0

@Sebastian - Si ces éléments n'avaient pas d'attribut 'value', j'imagine que cela ajouterait des attributs' value' vides ... mais ce code ne devrait pas en soi provoquer le non-déclenchement. –

+0

@Peter Ajtai, l'OP a déclaré que la partie alert() de la FI ne se déclenche pas. Cela pourrait aussi bien signifier que le si n'était jamais vrai. –

1

D'abord, comme écrit Sebastian, vous devez utiliser val() avec des parenthèses.

Deuxièmement, essayez ce droit avant la if au lieu de ce que vous avez maintenant:

 var dr = ""; 
    var br = ""; 
    var sr = ""; 

Si l'alerte apparaît maintenant, alors vous savez qu'il n'a pas pop avant parce que tous les trois dr , br et sr sont en cours de définition pour des chaînes vides ou null. (tous les trois doivent être "" ou null pour que le if se déclenche).

Si l'alerte ne s'affiche toujours pas, vous avez un autre problème en dehors de cette instruction if.

Assurez-vous de regarder vos variables/code avec Firebug.

Questions connexes