Autor Zpráva
Monkeys
Profil *
Vcera som tu riesil input number no vyriesil som to (ako mi bolo poradene) textovym inputum.
Vylepsil som si to o pridanie 2 obrazkovych tlacitok z kazdej strany + a -

v javascripte som si vytvoril funkciu ale problemom je pri desatinnych cislach mi to po 3 klikoch zmeni na cele cislo bez ciarky.
V com mam prosim vas chybu?

var obj = $(t),
    value = obj.siblings("input").val(),
    value = (value.match(/,/g)) ? parseFloat( value.replace(/,/g,'.') ) : parseInt( value );
    
if(method == "plus"){
obj.siblings("input").val( value + 1 );
}else{
(value > 0) ? obj.siblings("input").val( value - 1) : 0;
}

Vdaka
M.
Joker
Profil
Monkeys:
Řekl bych, že ne po třech, ale po dvou:

1. Sice se tam převádí desetinná čárka na tečku kvůli parseFloat, ale už se to pak nepřevádí zpátky. Čili po prvním kliknutí se změní desetinná čárka na tečku.
2. S desetinnou tečkou ten skript vůbec nepočítá a převede to na celé číslo.

Čili když tam zadám 1,2 a budu klikat na přidávání, hodnoty pole budou: 1,2 → 2.2 → 3 → 4 → atd.
Monkeys
Profil *
Joker:
Ano, uz som nato prisiel ked som si to riadok po riadku pozrel este raz, ale vyskytol sa mi dalsi problem.

var obj = $(t),
    value = obj.siblings("input").val(),
    number = (value.match(/[,\.]/g)) ? parseFloat( value.replace(/,/g,'.') ) : parseInt( value );
    
if(method == "plus"){
obj.siblings("input").val( (number + 1).toString().replace(/\./g, ",") );
}else{
(number > 0) ? obj.siblings("input").val( (number - 1).toString().replace(/\./g, ",") ) : 0;
}

1) ak mam default cislo napr. 33,26 tak pri odpocitavani mi to po 2 klikoch vypise 31.259999999999998 neviem z akeho dovodu ?
2) zviraznena podmienka ak je cislo 1,26 a odpocitam jeden (0,26) potrebujem osetrit aby bola nula.
Alphard
Profil
Monkeys:
po 2 klikoch vypise 31.259999999999998 neviem z akeho dovodu
Časté potíže, zajímavosti a poučné debaty » Výsledkem výpočtu 1 - 0.9 není přesně 0.1
Monkeys
Profil *
Joker, Alphard:

Vdaka za poznamky, uz som to vsetko vyriesil.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0