Какая строка в этом коде делает ошибку с "datepicker не является функцией"? - PullRequest
0 голосов
/ 24 сентября 2019

Прежде всего, мне жаль, что я спрашиваю об этом снова, так как я нашел похожие вопросы в stackoverflow, но не получил их.Я продолжаю получать JSfeatures_DP.js:66 Uncaught TypeError: $(...).datepicker is not a function. Я включил несколько скриптов в свой код, потому что у меня много функций JS.И потом, я не могу сказать, какой код нужен, а какой нет.

Это файл base.blade.php

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <div>

        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>DemoProject!!</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>

        {{--datepicker--}}
        <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
        <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
        <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

        <link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" />

        {{--darkmode--}}
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

        <script src="{{ asset('js/JSfeatures_DP.js') }}"></script>

        {{-- <script src="{{ asset('js/app.js') }}" type="text/js"></script> --}}

        <div class="container">
            @yield('main')
        </div>
    </head>
    <body>
    </body>
    </html>

, и это функция выбора даты, которую я сделал в JSfeatures_DP.js.


    function Calendar(self){
        $(document).ready(function(){
            $(self).datepicker({
                inline: true,
                firstDay: 0,
                showOtherMonths: true,
                dateFormat: "yy-mm-dd",
                dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
            }).datepicker("show");
        });
    }


Один извызов datepicker

<input type="text" value="<?php echo date("Y-m-d")?>" class="form-control" name="date" onfocus="
                        Calendar(self);
                        highlightInput(this);
                    ">

1 Ответ

1 голос
/ 24 сентября 2019

«Self» относится к «окну», поэтому либо вы должны использовать $ («# self») в вашем методе Calendar, либо вы должны передать «this» в качестве параметра вместо «self».Вам не нужно заключать код в $ (document) .ready, DOM, очевидно, будет к этому времени готов.

https://jsfiddle.net/9z16d0t2/1/

   <input type = "text" onfocus="calendar(this)">  

   function calendar(datepicker){          
        $(datepicker).datepicker({
          inline: true,
          firstDay: 0,
          showOtherMonths: true,
          dateFormat: "yy-mm-dd",
          dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
        }).datepicker("show");        
    }

ИЛИ

 <input type = "text" id ="self" onfocus="calendar()">

  function calendar(){          
      $("#self").datepicker({
        inline: true,
        firstDay: 0,
        showOtherMonths: true,
        dateFormat: "yy-mm-dd",
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
      }).datepicker("show");        
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...