【发布时间】:2015-03-27 01:26:18
【问题描述】:
我有一个简单的HTML form,用户可以在其中从数据库中搜索一个单词,如果该单词在数据库中,PHP 将结果作为JSON 对象返回。
奇怪的是,当用户通过单击按钮而不是按 Enter 键进行搜索时,会为数据库中的单词返回 JSON 对象。当用户按回车键或单击按钮进行搜索时,我有以下两个功能要处理。当用户在文本字段中输入单词后按回车键进行搜索时,如何改进我的代码以从 PHP 获取 JSON 对象?
$('#word-submit').on('click', function() {
var word = $('#word').val();
$.post('ajax/name.php', {word: word}, function(data) {
var obj = jQuery.parseJSON(data);
console.log(obj); //I see the object in Chrome console log.
});
});
$('#word').keypress(function(e) {
if (e.which == 13) {
var word = $('#word').val();
$.post('ajax/name.php', {word: word}, function(data) {
var obj = jQuery.parseJSON(data);
console.log(obj); //No object is return here. Why? May be something is wrong in my code.
});
}
});
<html>
<head>
<title>Welcome</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
<form>
<input type="text" id="word">
<input type="button" id="word-submit" value="Search">
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="js/global.js" charset="UTF-8"></script>
</body>
</html>
PHP 脚本运行良好。所以这里就不贴了。
【问题讨论】:
-
看起来代码没什么问题,按回车的时候,浏览器没有刷新吗??
-
是的。当我按下回车键时页面会重新加载,但当我点击按钮时不会。它只是简单地获取结果并显示它而不重新加载页面。
-
你能不能把
e.preventDefault();放在第一个括号后面的if块里面,然后再输入一次 -
有效!感谢您的帮助。