使用JQuery和Ajax提交表单
Submit Form With JQuery And Ajax
我正在进行类似论坛的讨论。可能有几个帖子,用户应该发表评论。
我有这个html帖子评论表单,它在每次发布后都会重复
<form method="POST" action="/discussion/post-comment" id="post-comment-form" class="form-horizontal subcommentcofrm" role="form">
<div class = "form-group">
<div class = "col-sm-6">
<input type = "text" class = "form-control comment-yako" id = "comment-field" placeholder = "Type your comment here..." autocomplete="off">
</div>
</div>
</form>
这是我使用ajax提交的JQuery代码:
$("input.comment-yako").live('keypress', function(e) {
if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) {
console.log('heey');
$(this).closest('form').submit(function(e){
console.log('heeeeeeey');
var data = $(this).serializeArray();
var url = $(this).attr("action");
$.ajax({
url: url,
type: 'POST',
cache: false,
data: data,
success: function(data) {
var item = $(data).hide().fadeIn(800);
$('.disc-content-reply').append(item);
},
error: function(e) {
alert(e);
}
});
e.preventDefault();
});
$(this).closest(".comment-yako").val("");
return false;
} else {
return true;
}
});
提交应该在用户点击回车键时进行。我的问题是,当我点击回车键时,表单不会提交。我不知道问题出在哪里;我做错了什么?
任何帮助都将不胜感激。
感谢
您应该在keypress
处理程序本身中发送AJAX请求,而不是在按键后绑定的submit
处理程序中。大多数情况下,将一个事件处理程序绑定到另一个事件处理器中是错误的;如果你发现自己在做这件事,要认真思考这是否真的是你想做的。
除此之外,我还将.live()
调用转换为.on()
。我还将.serializeArray()
更改为.serialize()
,因为这是发送表单字段的正常方式。
$(document).on('keypress', 'input.comment-yako', function(e) {
if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) {
console.log('heey');
var form = $(this).closest('form');
var data = form.serialize();
var url = form.attr("action");
$.ajax({
url: url,
type: 'POST',
cache: false,
data: data,
success: function(data) {
var item = $(data).hide().fadeIn(800);
$('.disc-content-reply').append(item);
},
error: function(e) {
alert(e);
}
});
e.preventDefault();
$(this).val("");
return false;
} else {
return true;
}
});
相关文章:
- Jquery提交表单而不刷新
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 每次提交表单时都会重新加载网页
- Razor中的自动提交表单
- 使用 JavaScript 自动提交表单
- 点击相同的按钮打开模型,然后提交表单
- 添加和删除隐藏字段数组中的值,而不提交表单
- 使用Ajax提交表单
- jQuery:使用“jQuery验证”后无法提交表单's远程验证
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- 有登录表单时无法提交表单
- 带有select的jquery提交表单不起作用
- 如何防止回车键提交表单,但仍然允许回车工作
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- 在提交表单之前确定重复值
- 如何创建动态ajax提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 当触发下拉列表的onchange事件时,使用JavaScript提交表单
- 提交表单后,Watir文本框输入未持续(重置为以前的文本框输入)