webForumDet fria alternativet

använda json data som hämtats via en webservice i uträkningar

JavaScript

5 svar · 721 visningar · startad av Sanji

Medlem sedan juli 2009355 inlägg
Frågan#1

hej! jag anropar en webservice via jquery, och får sedan tillbaka ett värde som jag sedan ska använda i en uträkning(avrundning till 2 decimaler), och resultatet av uträkningen ska sedan skrivas ut i en textbox.

det enda värdet jag lyckats få in i textboxen är NaN(not a number), även då jag försökt konvertera resultatet med hjälp av Number() funktionen.

försöker jag inte avrunda talet innan, så fungerar det att skriva ut värdet.
hur ska jag göra för att avrunda värdet till 2 decimaler och sedan skriva ut det utan att få NaN som resultat?

$.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "../webservices/updates.asmx/updateConvertedPrice",
                    data: '{"priceID": "' + priceID + '","price": "' + price + '" }',
                    dataType: "json",
                    success: function (result) {
                        alert("Uträkning av pris i default-valuta utförd, värdet returnerat till jquery. resultatet kommer nu att skrivas ut.");
                        alert($(e.target).attr('id').replace("ctl00_MainContent_txtEditPrice", ""));
                        alert(result.d.toString());//sist jag körde den returnerar den 21,4839823
                        var calcvalue = parseFloat(result.d) * 100;
                        var calculated = Math.round(calcvalue) / 100;
                        alert(calcvalue);
                        alert(parseFloat(result.d));
                        alert(isNaN(calculated)); //returnerar false

                        var calculated = Math.round(result.d * 100) / 100;
                        $('#ctl00_MainContent_calculatedpricetbox_' + $(e.target).attr('id').replace("ctl00_MainContent_txtEditPrice", "")).val(calculated);//resulterar i NaN
                        
                    },
                    error: function () { alert('Det konverterade Priset kunde inte räknas ut!'); }
                });

Mvh Marcus

Medlem sedan jan. 2005953 inlägg
#2

Är det komma (,) eller punkt (.) som används för decimaltecken? Det måste vara punkt.

Medlem sedan juli 2009355 inlägg
#3

gick igenom all kod steg för steg och upptäckte att det jar just , som används istället för .(punkt). fungerar nu :) fast resultatet av uträkningen är på det nummer som stod i textboxen innan jag skrivit in ett nytt.

jquery-koden körs nämligen på ett event(blur) då man lämnar textboxen, efter att man har ändrat värdet i den. det är det nya värdet som ska räknas om och skrivas ut, men får resultatet på det som stod i boxen innan jag ändrade. nästa gång jag ändrar så får jag uträkningen av det jag skrev in gången innan det.

hinner textboxens värde inte ändras innan eventet körs?

Medlem sedan jan. 2005953 inlägg
#4

Hur ser koden som anropar AJAX-anropet ut?

Medlem sedan juli 2009355 inlägg
#5
$(".textboxdotted").change(function (e) {
                var priceID = null;
                priceID = $(e.target).attr('id');
                var price = null;
                price = $(e.target).attr('value');

här ligger anropet

});
Medlem sedan juli 2009355 inlägg
#6

ingen som har någon idé? jag kan posta mer kod om så behövs!

Mvh

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)