Kære udviklere,
Står med et lille problem i forbindelse med at oprette nye elementer med jQuery til en div-boks.
Er igang med at lave et dynamisk kalender-system, hvor man kan ansøge om ferie og fri-dage over en længere periode. Dette gør man fra et popup-vindue jeg har udviklet (en div-boks der har display none/block).
I det popup-vindue er det muligt at vælge datoen man vil holde fri/ferie på (er lavet statisk i html'en). Hvis man ændrer den valgte måned i select-menuen opdaterer den antal dage i den måned, i den anden select-menu.
Jeg har så lavet et lille plus-link, hvor man kan tilføje en slut-dato hvis ens ferie/fridag skal vare længere end den valgte dato. Dette bliver tilføjet vha. javascript.
- $("#addNewDate").click(function() {
- $(this).css("display", "none");
-
- var date = new Date();
- var toDate = $("#toDate");
- var title = "Til dato: ";
- var toYear = $('<select id="toYear"/>');
- var toMonth = $('<select id="toMonth"/>');
- var toDay = $('<select id="toDay"/>');
-
- var selected_year = 0;
- var selected_month = 0;
-
- for(var i=(date.getFullYear()); i<=(date.getFullYear()+1); i++) {
- var x = (date.getFullYear() == i) ? " selected=\"selected\"" : "";
- if(date.getFullYear() == i) {
- selected_year = i;
- }
- toYear.append($('<option value="'+i+'"'+x+'>'+i+'</option>'));
- }
-
- for(var i=1; i<=12; i++) {
- var x = ((date.getMonth() + 1) == i) ? " selected=\"selected\"" : "";
- if((date.getMonth() + 1) == i) {
- selected_month = i;
- }
- toMonth.append($('<option value="'+i+'"'+x+'>'+(months[i-1])+'</option>'));
- }
-
- for(var i=1; i<=daysInMonth(selected_month, selected_year); i++) {
- toDay.append($('<option value="'+i+'">'+i+'</option>'));
- }
-
- toDate.append(title, toYear, toMonth, toDay);
- });
Mit problem er dog at jeg ikke kan lave en såkaldt "handler" på mine select-elementer. Ligesom at måneden ved første dato bliver ændret, og antal dage bliver opdateret, vil jeg gerne kunne opdatere slut-datoen således at ved at ændre på valgte måned, opdaterer den antal dage i den valgte måned.
Dette kan jeg ikke få til at virke når elementerne bliver oprettet vha. javascript.
Har prøvet noget ligende det her
- $("#toMonth, #toYear").change(function() {
- // script her
- });
Men den reagerer slet ikke på funktionen. Jeg ved at dette er grundet af at elementerne er oprettet vha. javascript. For jeg har lavet ligende funktion/handler til de statiske elementer i html'en, og det virker helt fint.
Har læst mig frem til at man kan gøre dette vha. data-sets, men aner ikke hvordan.
Nogen der kan hjælpe?
Indlæg senest redigeret d. 03.02.2015 20:11 af Bruger #16025