2013-01-19 5 views
1

gars. J'essaie de créer une calculatrice Web avec des opérations de base en utilisant jQuery. J'ai déjà implémenté l'opération d'addition. Maintenant, je suis accroché à la soustraction.jQuery-mis en œuvre Calculatrice

Voici un extrait de code lorsque vous cliquez sur le bouton moins:

$("#btnSub").click(function() { 
    holdValue = $("#result").val(); 
    currentValue = $("#result").val("0"); 

    flagSub = "1"; 
    flagNotEmpty = "0"; 
    flagDecimal = "0"; 
}); 

Voici un extrait de code lorsque vous cliquez sur Egaux bouton:

$("#btnEquals").click(function() { 
    if (flagNotEmpty == "0") { 
     alert("Missing Value."); 
    } else { 
     if (flagAdd == "1") { 
      currentValue = $("#result").val(); 
      var output = parseFloat(holdValue) + parseFloat(currentValue); 
      $("#result").val(parseFloat(output)); 
     } else if (flagSub == "1") { 
      currentValue = $("#result").val(); 
      var output2 = parseFloat(holdValue) - parseFloat(currentValue); 
      $("#result").val(parseFloat(output2)); 
     } 
    } 

    flagSub = "0"; 
    flagAdd = "0"; 
    flagNotEmpty = "0"; 
    flagDecimal = "0"; 
}); 

fonctions Variables:

  1. flagSub: utilisée pour déterminer que le fonctionnement est choisie de soustraction

  2. flagNotEmpty: utilisé pour déterminer si un certain nombre après avoir sélectionné un opérateur. Affiche le message d'erreur si le signe égal est cliqué juste après le bouton de l'opérateur.

  3. flagDecimal: utilisé pour indiquer au programme qu'un nombre décimal a déjà été entré. Afficher un message d'erreur pour la duplication du point décimal.

Un problème avec ce programme est qu'il ne peut pas effectuer de soustraction quand c'est la première opération que vous effectuez. Autrement dit, lorsque le navigateur charge l'interface utilisateur et que vous effectuez une soustraction, rien ne se passe. MAIS, quand vous faites, par exemple, cliquez sur 1 + 2 = puis le programme affiche 3 dans la zone de texte. Sans actualiser la page, cliquez sur - 10 =. La différence est affichée.

Pour commencer depuis le début, veuillez rafraîchir la page; J'ajouterai simplement le bouton EFFACER après avoir terminé toutes les opérations.

Je veux juste savoir ce qui ne va pas avec mon algorithme. Pour le code complet avec html et css, voici son fiddle.

D'ailleurs, je viens de commencer à apprendre jQuery donc s'il vous plaît pardonnez-moi le genre de désordre et peut-être moyen inefficace de codage. L'aide est vraiment très appréciée. Merci d'avance.

Répondre

0

flagAdd doit être initialisé, vous pouvez modifier le gestionnaire btnSub pour faire

$("#btnSub").click(function() { 
    holdValue = $("#result").val(); 
    currentValue = $("#result").val("0"); 

    flagAdd = "0"; 
    flagSub = "1"; 
    flagNotEmpty = "0"; 
    flagDecimal = "0"; 
}); 

Sinon, vous pouvez l'initialiser dans le document de gestionnaire prêt Fiddle