【发布时间】:2015-12-29 14:42:09
【问题描述】:
我正在编写一个 html 页面,其中完成了 1 个不同的 jquery 操作。
- 从 jquery datepicker 插件中选择日期。
- 从数据库中获取数据以自动完成。
下面是我的代码。
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Autocomplete in java web application using Jquery and
JSON</title>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script src="autocompleter.js"></script>
<link rel="stylesheet"
href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="header">
<h3>Autocomplete in java web application using Jquery and JSON</h3>
</div>
<br />
<br />
<div class="search-container">
<div class="ui-widget">
<input type="text" id="search" name="search" class="search" />
</div>
</div>
<p>
Date: <input type="text" id="startDatePicker">
</p>
<p>
Date: <input type="text" id="endDatePicker">
</p>
<div id="resultarea"></div>
</body>
</html>
autocompleter.js
$(document).ready(function() {
$(function() {
$("#startDatePicker").datepicker();
$("#endDatePicker").datepicker();
});
});
$(document).ready(function() {
$(function() {
$("#search").autocomplete({
source : function(request, response) {
$.ajax({
url : "Controller",
type : "GET",
data : {
term : request.term
},
dataType : "json",
success : function(data) {
response(data);
}
});
}
});
});
});
在这里,获取显示名称的数据工作正常,但日期选择器没有按预期工作。但是当我使用下面的代码时。 (从 index.html 标头的脚本标记中删除 datepicker 并将其粘贴)。日期选择器工作正常。
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Autocomplete in java web application using Jquery and
JSON</title>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script src="autocompleter.js"></script>
<link rel="stylesheet"
href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="style.css">
<script>
$(function() {
$("#startDatePicker").datepicker();
$("#endDatePicker").datepicker();
});
</script>
</head>
<body>
<div class="header">
<h3>Autocomplete in java web application using Jquery and JSON</h3>
</div>
<br />
<br />
<div class="search-container">
<div class="ui-widget">
<input type="text" id="search" name="search" class="search" />
</div>
</div>
<p>
Date: <input type="text" id="startDatePicker">
</p>
<p>
Date: <input type="text" id="endDatePicker">
</p>
<div id="resultarea"></div>
</body>
</html>
我不知道我哪里出错了。以及为什么第二个代码有效,为什么第一个无效。
我的一位老师建议将 HTML 制作成普通的并链接所有 css 和 js 将是一个很好的设计方法,所以我想将 js 文件与 HTML 分开。
谢谢
【问题讨论】:
-
两个函数都可以放在一个
$(document).ready(... -
autocompleter.js有两个$(document).ready(function(){});,整个文档应该只有一个。这个函数相当于说在页面加载时执行此操作,但你有两次,这是利益冲突,你应该只需要一个并将所有代码放在那里 -
添加到我之前的评论,作为一个经验法则:你所有的 javascript/jquery
<script>标签应该写在 之后 你的<body>标签
标签: jquery html datepicker