Looks like the JavaScript isn't actually being loaded. You can confirm this with Firefox developer tools or equivalent for your browser of choice. Most likely this is a path issue; what directory did you put the jQuery UI source in? I use jQuery UI in a Dancer2 app. I used the dancer2 command line utility to set up the directory structure, so I have: myapp/ lib/ myapp.pm public/ javascripts/ jquery.js jquery-ui.js myapp.js views/ index.tt layouts/ main.tt ... I load all my JavaScript in the main layout (views/layouts/main.tt), something like this: <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="// ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/smoothness/jquery-ui.min.css" /> <link rel="stylesheet" href="[% request.uri_base %]/css/style.css" /> <!-- Get jQuery and jQuery UI from Google's CDN if available, with local copy as a fallback --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script> <script src="// ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type = "text/javascript"></script> <script type="text/javascript">/* <![CDATA[ */ !window.jQuery && document.write('<script type="text/javascript" src="[% request.uri_base %]/javascripts/jquery.js"><\/script>') /* ]]> */</script> <script type="text/javascript">/* <![CDATA[ */ !window.jQuery.ui && document.write('<script type="text/javascript" src="[% request.uri_base %]/javascripts/jquery-ui.js"><\/script>') /* ]]> */</script> <script src="[% request.uri_base %]/javascripts/myapp.js" type="text/javascript"></script> </head> <body> [% content %] </body> </html> Two things to note: first, I use the template parameter 'request.uri_base' to get an absolute URL to the base of the application (which points to the public/ directory); second, I only use my local copy of jQuery if I fail to get it from Google's CDN. I create an HTML <input> element for my datepicker in views/index.tt: <input type="text" id="datepicker"> And the JavaScript to create the datepicker is in public/javascripts/myapp.js, something like: $(function() { $('#datepicker').datepicker({ dateFormat: $.datepicker.ISO_8601, maxDate: 0, changeMonth: true, changeYear: true }); }); (I haven't tested the above but it's essentially what my app does) On Wed, Jun 11, 2014 at 7:59 AM, Sullivan Beck <sbeck@cpan.org> wrote:
I've using Dancer 1.3115 on OpenSuSE 13.1. I've downloaded jquery 1.11.1 and the datepick plugin from http://keith-wood.name/datepick.html.
I took the simplest test script from the datepick home page (and stripped it down to a single popup calendar -- that's the functionality I want) and put it in a very simple Dancer script. Unfortunately, although the HTML produced is correct, the Dancer script isn't working.
When I run the dancer script and point my browser at it, I see a text box asking for a date. If I click in the box, no calendar pops up to select the date.
If I view the page source and copy the html into a dancer2.html file and open that file up in my browser and it works great. I see the same page, and clicking in the box pops up the calendar.
I'm a fairly recent user of Dancer, but I'm really liking it and want to use it for a project but I really need the datepicker to work.
Any suggestions?
I'm attaching the dancer2.pl script and the HTML it generates. My setup is that I have dancer2.pl and dancer2.html in a directory and a subdirectory jquery containing both jquery and the datepicker plugin (both completely unmodified).
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users