Uncaught TypeError: $(…).datepicker is not a function(anonymous function)

后端 未结 6 1289
感情败类
感情败类 2020-12-14 07:22

I found few answers on stack overflow but still cant resolve my problem. I am running on Django but I dont think it is relevant for this error.

I try to make work my

相关标签:
6条回答
  • 2020-12-14 07:50

    The error is because you are including the script links at two places which will do the override and re-initialization of date-picker

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    
    
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
    
    <script type="text/javascript">
    $(document).ready(function() {
        $('.dateinput').datepicker({ format: "yyyy/mm/dd" });
    }); 
    </script>
    
          <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>

    So exclude either src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"

    or src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"

    It will work..

    0 讨论(0)
  • 2020-12-14 08:02

    Including more than one reference to Jquery library is the reason for the error Only Include one reference to the Jquery library and that will resolve the issue

    0 讨论(0)
  • 2020-12-14 08:04

    You just need to add three file and two css links. You can either cdn's as well. Links for the js files and css files are as such :-

    1. jQuery.dataTables.min.js
    2. dataTables.bootstrap.min.js
    3. dataTables.bootstrap.min.css
    4. bootstrap-datepicker.css
    5. bootstrap-datepicker.js

    They are valid if you are using bootstrap in your project.

    I hope this will help you. Regards, Vivek Singla

    0 讨论(0)
  • 2020-12-14 08:09

    This error is occur,because the function is not defined. In my case i have called the datepicker function without including the datepicker js file that time I got this error.

    0 讨论(0)
  • 2020-12-14 08:10

    if you are using ASP.NET MVC

    Open the layout file "_Layout.cshtml" or your custom one

    At the part of the code you see, as below:

    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
    @Scripts.Render("~/bundles/jquery")
    

    Remove the line "@Scripts.Render("~/bundles/jquery")"

    (at the part of the code you see) past as the latest line, as below:

    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render("~/bundles/jquery")
    

    This help me and hope helps you as well.

    0 讨论(0)
  • 2020-12-14 08:16

    What went wrong?

    When you include jQuery the first time:

    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
    

    The second script plugs itself into jQuery, and "adds" $(...).datepicker.

    But then you are including jQuery once again:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    

    It undoes the plugging in and therefore $(...).datepicker becomes undefined.

    Although the first $(document).ready block appears before that, the anonymous callback function body is not executed until all scripts are loaded, and by then $(...) (window.$ to be precise) is referring to the most recently loaded jQuery.

    You would not run into this if you called $('.dateinput').datepicker immediately rather than in $(document).ready callback, but then you'd need to make sure that the target element (with class dateinput) is already in the document before the script, and it's generally advised to use the ready callback.

    Solution

    If you want to use datepicker from jquery-ui, it would probably make most sense to include the jquery-ui script after bootstrap. jquery-ui 1.11.4 is compatible with jquery 1.6+ so it will work fine.

    Alternatively (in particular if you are not using jquery-ui for anything else), you could try bootstrap-datepicker.

    0 讨论(0)
提交回复
热议问题