【发布时间】:2012-02-19 02:51:29
【问题描述】:
我正在使用 ajax 使用新文件夹更新数据库,但在按下 ENTER 后会刷新页面。
在我的表格上我有onkeypress="if(event.keyCode==13) savefolder();"
这是我拥有的javascript代码:它的作用基本上是在您按Enter键后调用函数savefolder,savefolder然后通过ajax发送请求以将文件夹添加到db。问题是它刷新页面......我希望它保持在同一页面上。
有什么建议么?谢谢
<script>
function savefolder() {
var foldername= jQuery('#foldername').val(),
foldercolor= jQuery('#foldercolor').val();
// ajax request to add the folder
jQuery.ajax({
type: 'get',
url: 'addfolder.php',
data: 'foldername=' + foldername + '&foldercolor=' + foldercolor,
beforeSend: function() { alert('beforesend');},
success: function() {alert('success');}
});
return false;
}
</script>
【问题讨论】:
-
为什么
e声明了两次(在doc.ready()和window.event中),而return false;在savefolder()的末尾应该(我想)取消表单提交,如果它是这样附加的。您发布的内容没有严格意义上的意义(doc.ready()块的结尾在哪里?)。 -
另外,ajax 不运行往返;事实上,您的
submit处理程序不会取消submit事件。我没有见过像你这样的方法(也许它是特定于 IE 的?),我看不到你在哪里声明submit处理程序。 -
@JaredFarrish 他在表单标签上定义了一个
inline onkeypress事件... -
@Xander - 啊,我明白了。这种方法与提交处理程序有什么特别的原因吗? (真的,我在想……)
-
@JaredFarrish 通常避免使用 HTML 中的内联事件绑定,因为您将
HTML紧密耦合到JS。不过,没有什么能阻止你。是的,通常标准方法是附加到表单的提交事件 - 至少我通常这样做......
标签: javascript jquery ajax