0

I have the a dropdown list. On selecting an option I want to display a calendar. The drop down switches work fine, but the calendar gets loaded when the website loads first time. Later the dropdown list functions as required. Please tell where I am doing the mistake.

 <form class="form-horizontal form-label-left top_margin">
                        <div class="form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12">Select The Class/Batch</label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                      <select class="form-control" id="division" onchange="calendar">
                        <option>Select One</option>
                        <option value="1">Standard 1 Divison A</option>
                        <option value="2">Standard 1 Divison B</option>
                        <option value="3">Standard 1 Divison C</option>
                        <option value="4">Standard 1 Divison D</option>
                      </select>
                    </div>
                  </div>
                  <br>
                  <br>
                  <br>
                    </form>
                    <div id="caldisplay">
                         <div id='calendar'></div>
                    </div>

My javascripts:

 <script>
    $('#division').on('change',function(){
 var selection = $(this).val();
switch(selection){
case "1":
$("#caldisplay").show()
break;
default:
$("#caldisplay").hide()
}
});
</script>






   $(function() { // document ready

    $('#calendar').fullCalendar({
        now: '2016-05-07',
        editable: true,
        aspectRatio: 1.8,
        scrollTime: '00:00',
        header: {
            left: 'prev,next',
            center: 'title',
            right: 'timelineMonth,timelineYear'
        },
        defaultView: 'timelineMonth',
        resourceAreaWidth: '25%',
        resourceLabelText: 'Students',
        resources: [
            { id: 'a', title: 'John Doe A' },
            { id: 'b', title: 'John Doe B' },
            { id: 'c', title: 'John Doe C' },
            { id: 'e', title: 'John Doe E' },
            { id: 'f', title: 'John Doe F' },
            { id: 'g', title: 'John Doe G' },
            { id: 'h', title: 'John Doe H' },
            { id: 'i', title: 'John Doe I' },
            { id: 'j', title: 'John Doe J' },
            { id: 'k', title: 'John Doe K' },
            { id: 'l', title: 'John Doe L' },
            { id: 'm', title: 'John Doe M' },
            { id: 'n', title: 'John Doe N' },
            { id: 'o', title: 'John Doe O' },
            { id: 'p', title: 'John Doe P' },
            { id: 'q', title: 'John Doe Q' },
            { id: 'r', title: 'John Doe R' },
            { id: 's', title: 'John Doe S' },
            { id: 't', title: 'John Doe T' },
            { id: 'u', title: 'John Doe U' },
            { id: 'v', title: 'John Doe V' },
            { id: 'w', title: 'John Doe W' },
            { id: 'x', title: 'John Doe X' },
            { id: 'y', title: 'John Doe Y' },
            { id: 'z', title: 'John Doe Z' }
        ],
        events: [
            { id: '1', resourceId: 'b', start: '2016-05-07', end: '2016-05-07', title: 'X' },
            { id: '1', resourceId: 'b', start: '2016-05-06', end: '2016-05-06', title: 'X' },
            { id: '2', resourceId: 'c', start: '2016-05-07', end: '2016-05-07', title: 'O' },
            { id: '3', resourceId: 'd', start: '2016-05-06', end: '2016-05-06', title: 'O' },
            { id: '4', resourceId: 'e', start: '2016-05-07', end: '2016-05-07', title: 'X' },
            { id: '5', resourceId: 'f', start: '2016-05-07', end: '2016-05-07', title: 'X' }
        ]
    });

});

 </script>
4
  • Check if the first script closing tag is really needed. If it does, consider introduce other starting script tag after that. Commented Aug 22, 2016 at 15:39
  • is this suppose to be in there 'onchange="calendar"'? if not Remove it as it may be causing an error Commented Aug 22, 2016 at 15:39
  • Try hiding the calendar after instantiating: $('#calendar').fullCalendar({ ... }).hide() Commented Aug 22, 2016 at 15:40
  • You really don't need a switch statement when you only handle two different situations, just use an if-else. Commented Aug 22, 2016 at 15:44

1 Answer 1

1

You don't need to use switch for just one simple function, by default u can hide it with CSS or if u want to show it when selection is different, u can use IF/ELSE statement..

Everything what u need to do is call the function like this:

On change call:

<select class="form-control" id="division" onchange="calendar()">

Function in JS:

    function calendar() {
        $calendar = $('#calendar');
        $calendar.show();

        $calendar.fullCalendar({
            now: '2016-05-07',
            editable: true,
            aspectRatio: 1.8,
            scrollTime: '00:00',
            header: {
                left: 'prev,next',
                center: 'title',
                right: 'timelineMonth,timelineYear'
            },
            defaultView: 'timelineMonth',
            resourceAreaWidth: '25%',
            resourceLabelText: 'Students',
            resources: [
                { id: 'a', title: 'John Doe A' },
                { id: 'b', title: 'John Doe B' },
                { id: 'c', title: 'John Doe C' },
                { id: 'e', title: 'John Doe E' },
                { id: 'f', title: 'John Doe F' },
                { id: 'g', title: 'John Doe G' },
                { id: 'h', title: 'John Doe H' },
                { id: 'i', title: 'John Doe I' },
                { id: 'j', title: 'John Doe J' },
                { id: 'k', title: 'John Doe K' },
                { id: 'l', title: 'John Doe L' },
                { id: 'm', title: 'John Doe M' },
                { id: 'n', title: 'John Doe N' },
                { id: 'o', title: 'John Doe O' },
                { id: 'p', title: 'John Doe P' },
                { id: 'q', title: 'John Doe Q' },
                { id: 'r', title: 'John Doe R' },
                { id: 's', title: 'John Doe S' },
                { id: 't', title: 'John Doe T' },
                { id: 'u', title: 'John Doe U' },
                { id: 'v', title: 'John Doe V' },
                { id: 'w', title: 'John Doe W' },
                { id: 'x', title: 'John Doe X' },
                { id: 'y', title: 'John Doe Y' },
                { id: 'z', title: 'John Doe Z' }
            ],
            events: [
                { id: '1', resourceId: 'b', start: '2016-05-07', end: '2016-05-07', title: 'X' },
                { id: '1', resourceId: 'b', start: '2016-05-06', end: '2016-05-06', title: 'X' },
                { id: '2', resourceId: 'c', start: '2016-05-07', end: '2016-05-07', title: 'O' },
                { id: '3', resourceId: 'd', start: '2016-05-06', end: '2016-05-06', title: 'O' },
                { id: '4', resourceId: 'e', start: '2016-05-07', end: '2016-05-07', title: 'X' },
                { id: '5', resourceId: 'f', start: '2016-05-07', end: '2016-05-07', title: 'X' }
            ]
        });
   }
Sign up to request clarification or add additional context in comments.

4 Comments

It worked. Thanks a lot. How to load the same function on tab. When we click on the tab to display the same function?
I mean the normal tab panel.
In the previous example, I need the javascript to work when I click one drop down. Not all.
So when u select something, do i understand right, sorry i've been busy

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.