Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JQuery] wielokrotność pola input
lukasz_web
post 17.09.2013, 07:23:19
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 26.02.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
mar1aczi
post 17.09.2013, 07:28:02
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Skorzystaj w warunku sprawdzania z dzielenia modulo smile.gif


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
lukasz_web
post 17.09.2013, 08:26:11
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 26.02.2009

Ostrzeżenie: (0%)
-----


No tak ale oprócz tego potrzebuję wartości całkowitej z dzielenia a javascript z tego co czytam nie posiada dzielenia całkowitoliczbowego ?
Go to the top of the page
+Quote Post
PrinceOfPersia
post 17.09.2013, 08:40:24
Post #4





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował PrinceOfPersia 17.09.2013, 08:41:48


--------------------
Go to the top of the page
+Quote Post
lukasz_web
post 17.09.2013, 09:20:25
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 26.02.2009

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
mar1aczi
post 17.09.2013, 09:39:50
Post #6





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


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?

Ten post edytował mar1aczi 17.09.2013, 09:45:45


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
lukasz_web
post 17.09.2013, 10:12:14
Post #7





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 26.02.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował lukasz_web 17.09.2013, 10:15:34
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 12:44