jquery parseFloat, parseInt
J'ai la situation suivante, je suis en utilisant jquery et j'ai besoin de revenir sur certains champs dans mon formulaire.
J'ai trouvé le NaN erreur dans mon champ sous-total et champ total.
J'ai essayé tout ce qui est possible pour éviter ce type d'erreur, j'ai juste besoin de la SOMME sur ce champ.
Tout dans mon formulaire fonctionne très bien, seulement ce 2 champs avec un problème.
Je suis en utilisant parseFloat()
et pas de réponse. Seulement un champ avec NaN
Suivez mon code javascript:
$(document).ready( function() {
$('#valor, #taxa, #imposto, #envio, #taxa_adicional, #subtotal, #total').blur(function(){
//exemplo antigo var val = $('#valor').val();
var val = $('#valor').format({format:"#,###.00", locale:"br"});
var tax = $('#taxa').format({format:"#,###.00", locale:"br"});
var imp = $('#imposto').format({format:"#,###.00", locale:"br"});
var env = $('#envio').format({format:"#,###.00", locale:"br"});
var xat = $('#taxa_adicional').format({format:"#,###.00", locale:"br"});
if(val == "") val = 0;
if(tax == "") tax = 0;
if(imp == "") imp = 0;
if(env == "") env = 0;
if(xat == "") xat = 0;
var subtotal = parseFloat("val") + parseFloat("tax") + parseFloat("imp") + parseFloat("env");
var total = parseFloat(val) + parseFloat(tax) + parseFloat(imp) + parseFloat(env) + parseFloat(xat);
$('#subtotal').format({format:"#,###.00", locale:"br"});
$('#total').val(total);
})
});
Merci d'avance pour toute aide à ce sujet! :-/
AVERTISSEMENT: je suis en utilisant un plugin appelé à:
jquery.numberformatter - mise en forme/Analyse des Nombres en jQuery Écrit par Michael Abernethy
Moi, j'aimerais voir votre version optimisée de ce code. Évidemment, il ne sera pas trop à faire pour vous, puisque vous pouvez les voir clairement.
Lors de la publication des questions avec un code qui utilise des plugins, c'est une bonne idée d'inclure les informations sur les plug-in(s). format() est une partie de plug-in?
Ouais! Je suis nouveau sur jquery et je ne sais rien à ce sujet. Je veux juste résoudre le problème de la parseInt ou parseFloat .. savez-vous comment puis-je montrer le sommée de la valeur à l'aide de cette méthode? J'ai aprécier votre réponse. Merci pour l'astuce!
Version optimisée est ici: vidasp.net/tinydemos/numberformatter-demo.html
OriginalL'auteur deepcell | 2010-11-24
Vous devez vous connecter pour publier un commentaire.
HTML:
JavaScript:
et puis:
Démo Live: http://jsfiddle.net/U9V6x/
Et Comment je obtenir les valeurs à partir d'une balise span envoyer par l'intermédiaire du formulaire ? depuis la balise span est pas un champ de formulaire. Je suis vraiment misé mélange de php et jquery.. n'était pas une bonne idée. 🙁
Oui, ce serait une solution. Toutefois, envisager l'utilisation d'Ajax. jQuery est facile à utiliser Ajax méthodes qui vous permettent d'envoyer des trucs à côté serveur. Avec Ajax, vous ne voudriez pas avoir à recharger toute la page, ce qui permettrait d'augmenter l'expérience de l'utilisateur.
Je ne connais pas PHP, mais n'est-ce pas là un $_POST objet? Alternativement, vous pouvez simplement utiliser le jQuery get() de la fonction à la place:
$.get("myPage.php", { total: total } );
J'ai inclus le code HTML et JavaScript, en plus j'ai fait une démo sur jsFiddle. Merci de me le faire savoir sur le lien mort.
OriginalL'auteur Šime Vidas
Lorsque vous êtes calcul de votre sous-total, vous appelez parseFloat() sur une série de cordes, de ne pas les variables elles-mêmes. La ligne doit être:
N'utilisez pas de parseFloat! Le plug-in dispose d'une méthode spécifique pour l'analyse de la valeur mise en forme. Découvrez mon travail de démonstration.
OriginalL'auteur James Kovacs
On dirait que vous êtes en utilisant ce plugin: http://code.google.com/p/jquery-numberformatter/
Que le plugin va prendre un élément, d'analyser la valeur selon le format, et le réinsérer dans le DOM, à partir de ce que je peux dire. Donc, je vais supposer que c'est le cas.
Notez que j'essaie seulement de vous aider à avoir plus facile à lire le code. Il y a probablement beaucoup de façons d'écrire pour l'obtenir maigres[1]
[1] moins de gras, moins de déchets; ~ peut-être cela se traduit, peut-être que c'est un idiome?
Pour être clair, vous ne pouvez pas couper et coller que des bribes de mon code, ouais? Je veux juste être clair, ce n'est pas ce que vous avez fait, parce que cela n'aurait pas travaillé indépendamment. Aussi, je ne suis pas entièrement sûr que mon code fait ce que vous voulez, comme quelqu'un d'autre l'a noté, vous devriez ai utilisé la condition numérique analyseur dans la bibliothèque à la place de mon analyse de la méthode.
J'apprécie votre souci, merci pour toute aide. Votre code me donner de nouvelles idées sur ce que je dois faire, je ne suis pas de copier et de coller le code, je suis le développement de quelque chose avec jquery et je n'ai jamais utilisé cette technologie d'avant, mais j'ai appris beaucoup de choses avec des personnes comme vous. Vraiment Merci. Maintenant de retour pour le code. :-/
OriginalL'auteur jcolebrand
Cela devrait fonctionner pour vous:
$(document).ready( function() {
});
Qu'est-ce que la chaîne de valeur de la variable val avant de elle est analysée?
Le problème a été résolu par @Sime_Vidas. Pas d'agrément le symbole était là..
OriginalL'auteur Metagrapher