我正在尝试在我正在处理的项目中的输入表单上实现自动完成功能。我试图使用jQuery触发对servlet的AJAX调用,并在keyup的输入字段上添加了一个监听器。但是,它似乎永远不会进入。我还添加了控制台日志以验证它确实没有输入,并且检查控制台它也是空白的。
我在下面加了html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Fabflix Home</TITLE>
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"</script>
<script type="text/javascript">
$(document).ready(function(){
$( "#autoSearch" ).on("keyup", function () {
console.log("Entered!");
var data = $('#autoSearch').val();
$.ajax({
type: "POST",
url: "/FabflixP4/servlet/autocomplete",
data: data,
dataType: "xml",
success: function(data)
{
console.log("Success!");
}
});
});
});
</script>
</HEAD>
<BODY BGCOLOR="#FDF5E6">
<H1 ALIGN="CENTER">Test</H1>
<div align="CENTER">
<form action = "/FabflixP4/servlet/Movie">
Search: <INPUT TYPE="TEXT" NAME="title">
<input type="submit" id="autoSearch" value="Submit">
</form>
</div>
</BODY>
</HTML>
我是jQuery和AJAX的新手,并且发现我遗漏了一些东西。我花了几个小时研究这个无济于事。作为一方,这不是一个不打算使用的小项目,性能并不重要。谢谢。
编辑1:添加了脚本类型并移至头部,仍未输入。
答案 0 :(得分:3)
您正在收听keyup
按钮的submit
事件。您应该收听keyup
输入的text
事件。
$('input[name="title"]').on("keyup", function () {