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.

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