Pereiti prie turinio

Javascript decimals [išspręsta]


Rekomenduojami pranešimai

Sveiki,

 

susiradau inputą Bootstrapui, kuriame su + arba - mygtukais galima didinti arba mažinti reikšmę.

 

post-10219-0-24264600-1452780242_thumb.png

 

Čia kodas: http://bootsnipp.com/user/snippets/b4WXr

 

Problema tame, kad niekaip nesugebu pasidaryti, kad pridėtų ir atimtų ne po 1, o po 0.10 ir visada rodytų 2 skaičius po kablelio. Bandžiau parseInt keisti į parseFloat, bet tada kai kurios reikšmės rodomos ne pvz. 1 o 0.9999999999999 ir panašiai. Kiek bandau visokius variantus, nieko doro nesigauna, nes sunkiai sekasi su JS.

 

Pagalbos :(

 

JS kodas:

 

$(function() {
   var action;
   $(".number-spinner button").mousedown(function () {
       btn = $(this);
       input = btn.closest('.number-spinner').find('input');
       btn.closest('.number-spinner').find('button').prop("disabled", false);

   	if (btn.attr('data-dir') == 'up') {
           action = setInterval(function(){
               if ( input.attr('max') == undefined || parseInt(input.val()) < parseInt(input.attr('max')) ) {
                   input.val(parseInt(input.val())+1);
               }else{
                   btn.prop("disabled", true);
                   clearInterval(action);
               }
           }, 50);
   	} else {
           action = setInterval(function(){
               if ( input.attr('min') == undefined || parseInt(input.val()) > parseInt(input.attr('min')) ) {
                   input.val(parseInt(input.val())-1);
               }else{
                   btn.prop("disabled", true);
                   clearInterval(action);
               }
           }, 50);
   	}
   }).mouseup(function(){
       clearInterval(action);
   });
});

Redagavo bratkax
Nuoroda į pranešimą
Dalintis kituose puslapiuose

$(function() {
   var action;
   $(".number-spinner button").mousedown(function () {
       btn = $(this);
       input = btn.closest('.number-spinner').find('input');
       btn.closest('.number-spinner').find('button').prop("disabled", false);
       var step = 0.1;
   	if (btn.attr('data-dir') == 'up') {
           action = setInterval(function(){
               if ( input.attr('max') == undefined || input.val() < input.attr('max') ) {

                   var current = parseFloat(input.val());
                   input.val((current+step).toFixed(2));
               }else{
                   btn.prop("disabled", true);
                   clearInterval(action);
               }
           }, 50);
   	} else {
           action = setInterval(function(){
               if ( input.attr('min') == undefined || input.val() > input.attr('min') ) {
                   var current = parseFloat(input.val());
                   input.val((current-step).toFixed(2));
               }else{
                   btn.prop("disabled", true);
                   clearInterval(action);
               }
           }, 50);
   	}
   }).mouseup(function(){
       clearInterval(action);
   });
});

 

sitaip reikejo?

Redagavo proactive
Nuoroda į pranešimą
Dalintis kituose puslapiuose

sitaip reikejo?

 

Taip, dėkui :)

 

Tik dar vienas dalykas - dabar inputas yra toks:

 

<input type="text" class="form-control text-center" value="0.10" min="0.1" max="10">

 

Prieš tai ir leisdavo pridėti daugiausia iki 10 (kiek man ir reikia), o dabar jei nustatyta 10 tai prideda tik iki 2.00

 

EDIT:

 

lyg ir susitvarkiau, vietoj

 

if ( input.attr('max') == undefined || input.val() < input.attr('max') ) {

 

pasidariau

 

if ( input.attr('max') == undefined || parseFloat(input.val()) < input.attr('max') ) {

Redagavo bratkax
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...