Jquery没有定义,没有定义错误

时间:2017-04-08 06:37:19

标签: jquery jquery-ui

我收到了上述错误。

以下是我的代码

<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />;
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <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>
  <script src="https://cdn.jsdelivr.net/jquery.validation/1.15.1/jquery.validate.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
  <script>

上面是我的代码,我已经包含了与jquery和validate.min.js相关的所有库。但是我得到了同样的错误。

enter image description here

以上是我得到的错误图片。

下面是脚本代码

$(document).ready(function() {
  alert("hello");
  $.ajax({
    url: "dbconnect",
    dataType: "json",
    data: {
      field1: "countries"
    },
    success: function(data) {
      alert("yes");
      var values = [];
      values = data;
      alert("success");
      alert(values);
      var option = '';

      $.each(values, function(index, value) {

        option += '<option value="' + index + '">' + value + '</option>';
      });
      $('#countryId').append(option);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      alert("Status: " + textStatus);
      alert("Error: " + errorThrown);
    }
  });
});
$(function() {
  $('#countryId').on('change', function() {
    var r = $('#countryId').val();
    $.ajax({
      url: "dbconnect",
      dataType: "json",
      data: {
        field1: "states",
        field2: $('#countryId option:selected').text()
      },
      success: function(data) {
        alert("yes");
        var values = [];
        values = data;
        alert("success");
        alert(values);
        var option = '';
        $('#stateId').find('option')
          .remove()
          .end().append('<option value="Choose State">Choose State</option>');
        $.each(values, function(index, value) {

          option += '<option value="' + index + '">' + value + '</option>';
        });
        $('#stateId').append(option);
      },
      error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Status: " + textStatus);
        alert("Error: " + errorThrown);
      }
    });
  })
});
$(function() {
  $('#stateId').on('change', function() {
    $.ajax({
      url: "dbconnect",
      dataType: "json",
      data: {
        field1: "cities",
        field2: $('#stateId option:selected').text()
      },
      success: function(data) {
        alert("yes");
        var values = [];
        values = data;
        alert("success");
        alert(values);
        var option = '';
        $('#cityId').find('option')
          .remove()
          .end().append('<option value="Choose City">Choose City</option>');
        $.each(values, function(index, value) {
          alert(index + ": " + value);
          option += '<option value="' + index + '">' + value + '</option>';
        });
        $('#cityId').append(option);
      },
      error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Status: " + textStatus);
        alert("Error: " + errorThrown);
      }
    });
  })
});
$(document).ready(function() {
  $("#datepicker").datepicker({
    changeMonth: true,
    changeYear: true,
    yearRange: '1900:2017',
  });
});

为什么我收到错误?有没有解决办法?

2 个答案:

答案 0 :(得分:1)

您正在多次加载jQuery,这实际上导致了datepicker并验证未定义的错误。

这是一个工作plunk

的示例

当您将任何脚本加载到任何html页面时,将脚本放在body部分(就在body标记结束之前)并将代码包装在

中总是一个好习惯。
$(document).ready(function(){
   // your code goes here
});

您已在某处写过$(function(){}),并且您正在编写$(document).ready(function(){})它们都是相同的,因此您可以将它们全部包装在一个document.ready函数中。

一个建议虽然请避免在您的应用程序中使用如此多的警报,但您可以使用console.log将错误或成功消息记录到控制台。

答案 1 :(得分:0)

请将您的代码放在完成正文标记之后。

dataset