jQuery datepicker 函数:datepicker 不是函数

Posted

技术标签:

【中文标题】jQuery datepicker 函数:datepicker 不是函数【英文标题】:jQuery datepicker function: datepicker not a function 【发布时间】:2017-10-13 21:35:43 【问题描述】:

我正在尝试在此处添加 jQuery datepicker 函数。但是我收到一个错误,例如“日期选择器不是函数”。请让我知道出了什么问题。我解决了其他问题并尝试纠正但没有奏效。

<script>
    $(function () 
        var $j = jQuery.noConflict();
      $j("#From").datepicker();
    );
    //$(function () 
    //    $('#datetimepicker2').datetimepicker(
    //    );
    //);
</script>
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Reports</title>
    <link href="~/Content/Site.css" rel="stylesheet" />
    <script src="~/Scripts/jquery-1.12.4.js"></script>
    <script src="~/Scripts/jquery-ui-1.12.1.js"></script>
</head>
<body>
    <div class="container">
        <!-- Form Starts-->
        <form name="PTTReport" style="padding-top:20px">
            <div class="panel panel-primary">
                <div style="padding-bottom:25px" class="panel-heading fixed_panel">
                    <span>Report Filters</span>
                </div>
                <div class="panel-body">
                    <div class="row pb-20px">
                        <label id="From1" class="col-sm-1">From</label>
                        <input type="text" class="col-sm-2" id="From" />
                        <label id="To" class="col-sm-1">To</label>
                        <input type="text" class="col-sm-2" id="To" />
                    </div>
                    <div class="row">
                        <div class='col-sm-5'>
                            <div class="form-group">
                                <label id="From1" class="col-sm-2">From</label>
                                <div class='input-group date' id='datetimepicker2'>
                                    <input type='text' class="form-control" />
                                    <span class="input-group-addon">
                                        <span class="glyphicon glyphicon-calendar"></span>
                                    </span>
                                </div>
                            </div>
                        </div>
                    </div>
</form>
    </div>
</body>
</html>

整个cshtml页面,

    <!DOCTYPE html>
    <script>
        $(function () 
            var $j = jQuery.noConflict();
          $j("#From").datepicker();
        );
        //$(function () 
        //    $('#datetimepicker2').datetimepicker(
        //    );
        //);
    </script>
     <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Reports</title>
        <link href="~/Content/Site.css" rel="stylesheet" />
        <script src="~/Scripts/jquery-1.12.4.js"></script>
        <script src="~/Scripts/jquery-ui-1.12.1.js"></script>    
    </head>
    <body>
        <div class="container">
            <!-- Form Starts-->
            <form name="PTTReport" style="padding-top:20px">
                <div class="panel panel-primary">
                    <div style="padding-bottom:25px" class="panel-heading 
    fixed_panel">
                    <span>Report Filters</span>
                </div>
                <div class="panel-body">
                    <div class="row pb-20px">
                        <label id="From1" class="col-sm-1">From</label>
                        <input type="text" class="col-sm-2" id="From" />
                        <label id="To" class="col-sm-1">To</label>
                        <input type="text" class="col-sm-2" id="To" />
                    </div>
                    <div class="row">
                        <div class='col-sm-5'>
                            <div class="form-group">
                                <label id="From1" class="col-sm-2">From</label>
                                <div class='input-group date' id='datetimepicker2'>
                                    <input type='text' class="form-control" />
                                    <span class="input-group-addon">
                                        <span class="glyphicon glyphicon-calendar"></span>
                                    </span>
                                </div>
                            </div>
                        </div>
                    </div>
</form>
    </div>
</body>
</html>

【问题讨论】:

你的 JS 代码在 HTML 中的什么位置? 就在 标签关闭之后 应该是之前&lt;/head&gt;,而不是之后 现在我收到“未捕获的 ReferenceError: $ is not defined” 这意味着在包含 JS 时没有定义 jQuery。请编辑您的问题以显示您正在使用的 HTML 【参考方案1】:

您是否在 DOM 中包含 datepicker JS 文件?你能更新最新的代码吗?

【讨论】:

我已经在 关闭之后在 HTML 页面本身中添加了 JS【参考方案2】:

检查下面的sn-p。它的工作

    $(function () 
        var $j = jQuery.noConflict();
      $j(".datepicker").datepicker();
    );
    //$(function () 
    //    $('#datetimepicker2').datetimepicker(
    //    );
    //);
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Reports</title>
    <link href="~/Content/Site.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" rel="stylesheet"/>


</head>
<body>
    <div class="container">
        <!-- Form Starts-->
        <form name="PTTReport" style="padding-top:20px">
            <div class="panel panel-primary">
                <div style="padding-bottom:25px" class="panel-heading fixed_panel">
                    <span>Report Filters</span>
                </div>
                <div class="panel-body">
                    <div class="row pb-20px">
                        <label id="From1" class="col-sm-1">From</label>
                        <input type="text" class=" datepicker col-sm-2" id="From" />
                        <label id="To" class="col-sm-1">To</label>
                        <input type="text" class="datepicker col-sm-2" id="To" />
                    </div>
                    <div class="row">
                        <div class='col-sm-5'>
                            <div class="form-group">
                                <label id="From1" class="col-sm-2">From</label>
                                <div class='input-group date' id='datetimepicker2'>
                                    <input type='text' class="form-control datepicker" />
                                    <span class="input-group-addon">
                                        <span class="glyphicon glyphicon-calendar"></span>
                                    </span>
                                </div>
                            </div>
                        </div>
                    </div>
</form>
    </div>
</body>
</html>

【讨论】:

那么问题可能出在我的代码中。它根本不起作用。很奇怪 我认为你错过了外部“jqueryui css”、“jqueryui.js”的路径,可能是“javacriptlibrary” 它适用于普通的html页面,但不适用于MVC cshtml页面【参考方案3】:

试试这个:

$(function() 
  var j = jQuery.noConflict();
  j("#From").datepicker();
);

【讨论】:

以上是关于jQuery datepicker 函数:datepicker 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 的 datepicker 日期和日期逻辑

在 beforeShowDay 函数中更改 datepicker 日期格式

jquery datepicker验证

PHP 将PHP date()样式dateFormat转换为等效的jQuery UI datepicker字符串

JQuery Datepicker - onSelect 日期格式

将PHP date()样式的dateFormat转换为等效的jQuery UI datepicker字符串