Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQuery] wielokrotność pola input
Forum PHP.pl > Forum > Po stronie przeglądarki
lukasz_web
Witam,

Męczę się by ograniczyć pole input do minimalnej i wielokrotnej wartości np.: 50

Kod
<script type="text/javascript">
function CheckNo(sender){
    if(!isNaN(sender.value)){
        if(sender.value > 50 )
            sender.value  = 100;
        if(sender.value < 50 )
            sender.value = 50;
    }else{
          sender.value = 0;
    }
}
</script>


  1. <input type="number" type="" onblur="CheckNo(this)" />


Udało mi się ograniczyć do minimalnej wartości wpisywania w pole input 50, ale nie wiem jak ograniczyć pole input do wielokrotności 50 (100,150,200,250,300,350...)

Proszę o pomoc.
mar1aczi
Skorzystaj w warunku sprawdzania z dzielenia modulo smile.gif
lukasz_web
No tak ale oprócz tego potrzebuję wartości całkowitej z dzielenia a javascript z tego co czytam nie posiada dzielenia całkowitoliczbowego ?
PrinceOfPersia
ale i tak ma dzielenie z resztą:
15 % 5 ---------> 0
16 % 5 ---------> 1

posiada też zaokraglanie:
Math.floor(liczba) zaokrągla ci liczbę w dół.
jest też trick z dwiema tyldami: ~~liczba, np. ~~3.5 da ci w wyniku 3

EDIT:
Cytat
No tak ale oprócz tego potrzebuję wartości całkowitej z dzielenia a javascript

potrzebujesz więc dwóch liczb:
~~(liczba / dzielnik)
liczba % dzielnik
lukasz_web
Math.floor(liczba) tego dokładnie potrzebowałem do szczęścia smile.gif

Kod
<script type="text/javascript">
function CheckNo(sender){
    if(!isNaN(sender.value)){
        if(sender.value > 50 )
    
    var x = sender.value;
    var y = 50;
    var wynik;
    wynik = x % y;
    sender.value = Math.floor(wynik);
    
        if(sender.value < 50 )
            sender.value = 50;
    }else{
          sender.value = 0;
    }
}
</script>


Z mnożeniem:
Kod
wynik = x * y;

Działa OK

A z dzieleniem module % jak wyżej nie chce? nie kumam...
mar1aczi
Chcesz sprawdzić czy podana liczba w input jest podzielna przez 50 czyli jest jej wielokrotnością?
PrinceOfPersia podał Ci nawet przykłady. Zapoznałeś się z tematem, co to takiego dzielenie modulo?
Sprawdzasz zatem wynik z dzielenia modulo. Powinien mieć wartość 0 (nie ma reszty) - tak?
Kod
if(value % 50 == 0) {
// podana wartość to co najmniej 50 lub jej wielokrotność
}
else {
// podana wartość nie spełnia założeń
}

Czego nie rozumiesz?
lukasz_web
Zrobione:

Kod
function CheckNo(sender){
    if(!isNaN(sender.value)){
        if(sender.value > 50 )

var num = sender.value
var mult = 50;
wynik = Math.floor(num / mult) * mult;
sender.value = wynik;
    
        if(sender.value < 50 )
            sender.value = 50;
    }else{
          sender.value = 0;
    }
}


Dzięki za pomoc all
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.