2010-10-23 9 views
0

Hé les gars, Je suis nouveau à jQuery/js et avoir du mal à comprendre cela. Il y a deux champs dans une forme de mes je veux faire des calculs avec, ce que j'ai essayé est le suivant:changer contenu div basé sur trois pour les éléments

jQuery.fn.calculateit = function(){ 

    var one = $("#one").val(); 

    var two = $("#two").val(); 

    //total 
    var total = one + two; 
    $("#total").text(total); 

}; 

Les valeurs « un » et « deux » peuvent changer à tout moment, et à chaque fois que il se passe que je veux que le total change. J'ai donc écrit la méthode ci-dessus, mais je n'ai aucune idée de comment l'appeler à chaque fois que quelque chose se passe avec les deux champs.

Des idées?

Peut-être que je suis sur la mauvaise voie, donc les suggestions sont les bienvenues!

Merci!

Répondre

2

Ici, vous allez:

$("#one, #two").change(function() { 
    calculateit(); 
}); 

var calculateit = function() { 

    var one = parseInt($("#one").val(), 10); 
    var two = parseInt($("#two").val(), 10); 

    //total 
    var total = one + two; 
    $("#total").text(total); 

}; 

Ou, si vous préférez, vous pouvez ajouter calculateit-jQuery.fn et l'appeler avec $.calculateit().

Ou, de façon plus concise:

$("#one, #two").change(function() { 

    var one = parseInt($("#one").val(), 10); 
    var two = parseInt($("#two").val(), 10); 

    //total 
    var total = one + two; 
    $("#total").text(total); 

}); 
+0

Ou vous pourriez en faire un peu plus concis:. '$ ('# De l'un, #two') changement (/*...*/);' –

+0

@David: Merci, j'ai mis à jour ma réponse. – Chetan

+2

Pour être sûr, je recommande d'appeler 'parseInt()' ou 'parseFloat' sur les valeurs retournées avant de les ajouter ensemble. Sinon, vous pouvez concaténer deux chaînes au lieu d'ajouter leurs valeurs numériques. – Blackcoat