|
Klijentske aplikacije (X)HTML, CSS, JavaScript, AJAX... |
|
Alatke vezane za temu | Vrste prikaza |
13.8.2011, 22:15 | #1 |
Član
|
jQuery Daterange
Kako da u ovom primeru namestim ograničenje za datum, tako da razlika između dva unosa ne sme biti veća od 4 meseca?
Kod:
<meta charset="utf-8"> <script> $(function() { var dates = $( "#from, #to" ).datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 3, onSelect: function( selectedDate ) { var option = this.id == "from" ? "minDate" : "maxDate", instance = $( this ).data( "datepicker" ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); dates.not( this ).datepicker( "option", option, date ); } }); }); </script> <div class="demo"> <label for="from">From</label> <input type="text" id="from" name="from"/> <label for="to">to</label> <input type="text" id="to" name="to"/> </div><!-- End demo --> <div class="demo-description"> <p>Select the date range to search for.</p> </div><!-- End demo-description --> Trudim se, ali ne znam ovaj JavaScript |
14.8.2011, 20:31 | #2 |
Veteran
Član od: 5.11.2005.
Poruke: 826
Zahvalnice: 177
Zahvaljeno 199 puta na 154 poruka
|
Re: jQuery Daterange
Tvoj kod baš i nije čitko postavljen , ali na primeru stranice na koju si postavio link. Datepicker ima opcije minDate i maxDate (među ostalima, vide se na tabu Options na toj stranici). Na primeru koda sa te stranice (onaj deo koji se pojavi kada odeš na "view source"):
HTML kod:
<script> $(function() { var dates = $( "#from, #to" ).datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 3, /* Sledece 2 linije su dodate */ minDate: "0d", maxDate: "+4m", onSelect: function( selectedDate ) { var option = this.id == "from" ? "minDate" : "maxDate", instance = $( this ).data( "datepicker" ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); dates.not( this ).datepicker( "option", option, date ); } }); }); </script> Naravno, podatke moraš da iskontrolišeš i na serverskoj strani. |
Sledeći korisnik se zahvaljuje korisniku Remedy na korisnoj poruci: | ||
dusandevic (14.8.2011) |
15.8.2011, 2:24 | #3 | |
Član
|
Re: jQuery Daterange
Citat:
Ovo mi ne rešava problem. Prvi unos može biti proizvoljan, a drugi unos može biti najviše 4 meseca od prvog unosa (ne od današnjeg datuma, kako se ovim kodom dobija). Ovakvo rešenje "prolazi" samo u slučaju da je prvi unos uvek današnji datum, ali u realnosti neće biti tako. Proveo sam nekoliko sati pokušavajući uz pomoć te jQuery dokumentacije, ali nisam uspeo... |
|
15.8.2011, 6:05 | #4 |
Veteran
Član od: 5.11.2005.
Poruke: 826
Zahvalnice: 177
Zahvaljeno 199 puta na 154 poruka
|
Re: jQuery Daterange
Šta ima lepše od javascripta uz jutarnju kafu
HTML kod:
<script> $(function() { var dates = $( "#from, #to" ).datepicker({ /* Dan koji je odabran po defaultu, +1d je sutrasnji datum, 0d je danasnji... */ defaultDate: "+1d", changeMonth: true, numberOfMonths: 3, onSelect: function( selectedDate ) { /* customRange - nova promenljiva za opseg u mesecima, 4 posto rece 4 meseca */ var customRange = 4, /* ako je aktivno from polje, vraca maxDate, da bi to postavili kao opciju za drugo input polje, ova linija je IZMENJENA (izmenjeno je minDate i maxDate u odnosu na originalnu skriptu) */ option = this.id == "from" ? "maxDate" : "minDate", instance = $( this ).data( "datepicker" ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); /* ako je kao option postavljeno maxDate, onda odabrani datum povecavamo za 4 meseca, u protivnom je option minDate, pa datum smanjujemo za 4 (npr ako je prvo popunjeno #to input polje, onda #from ne moze biti ranije od 4 meseca pre) */ if(option == "maxDate") { date.setMonth(date.getMonth() + customRange); } else { date.setMonth(date.getMonth() - customRange); } /* postavljanje opcije minDate ili maxDate za drugo input polje */ dates.not( this ).datepicker( "option", option, date ); } }); }); </script> |
Sledeći korisnik se zahvaljuje korisniku Remedy na korisnoj poruci: | ||
dusandevic (15.8.2011) |
15.8.2011, 14:25 | #5 |
Član
|
Re: jQuery Daterange
Radi!
Hvala ti dobri čoveče! |
15.8.2011, 21:55 | #6 |
Veteran
Član od: 5.11.2005.
Poruke: 826
Zahvalnice: 177
Zahvaljeno 199 puta na 154 poruka
|
Re: jQuery Daterange
Dobro je ako radi kako si zamislio, ali ima jedna stvar koju bi trebalo popraviti. Poslednja linija koda
HTML kod:
dates.not( this ).datepicker( "option", option, date ); HTML kod:
<script> $(function() { var dates = $( "#from, #to" ).datepicker({ defaultDate: "+1d", changeMonth: true, numberOfMonths: 3, /* Ovo uklanja ogranicenje, ako korisnik rucno obrise prethodno unetu vrednost u drugom polju */ beforeShow: function(inputField){ if(!dates.not(this).attr("value")) { $(this).data("datepicker").settings["maxDate"] = null; $(this).data("datepicker").settings["minDate"] = null; } }, onSelect: function( selectedDate ) { /* customRange - nova promenljiva za opseg u mesecima */ var customRange = 4, /* ako je aktivno from polje, vraca maxDate, da bi to postavili kao opciju za drugo input polje, ova linija je IZMENJENA (izmenjeno je minDate i maxDate u odnosu na originalnu skriptu) */ option = this.id == "from" ? "maxDate" : "minDate", instance = $( this ).data( "datepicker" ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); /* ako kao option nije postavljeno maxDate, datum smanjujemo za 4 */ customRange = option == "maxDate" ? customRange : -customRange; date.setMonth(date.getMonth() + customRange); /* postavljanje opcije minDate ili maxDate za drugo input polje */ dates.not(this).data("datepicker").settings[option] = date; } }); }); </script> |
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Kako uraditi jquery baner | zoxkika2 | Web razvoj | 3 | 6.10.2010 17:16 |
Problem sa sajtom i jQuery animacijom | maxtter | Web dizajn | 2 | 3.4.2010 18:15 |
Dinamički GridView u ASP.NET Ajaxu i jQuery | dechkotzar | Serverske aplikacije i baze podataka | 3 | 20.3.2009 22:10 |