提交表单按钮在ajax发布后卡住
Submit form button stuck after ajax post
Hi我有一个表单,它使用Ajax在Rails4中发帖。javascript运行一些验证,一旦发布成功,就会返回一条警告消息。目前,提交按钮保持按下状态,尽管表单没有发布任何消息,但会收到警报。我不知道我做错了什么,只想让表单提醒一条消息,然后重新设置自己。
$('#submit1').click(function(e){
e.preventDefault();
var name = $('input#name').val();
if (name == "") {
alert("please enter a name!");
$('input#name').focus();
return false;
}
var email = $('input#email').val();
if (email == ""){
alert("please enter your email");
$('input#email').focus();
return false;
}
var content = $('textarea#text').val();
if (content == ""){
alert("please enter a comment");
$('textarea#text').focus();
return false;
}
var dataString = 'name=' + name + '&email=' + email + '&content=' + content;
$.ajax({
type: "POST",
url: "emailer",
data: dataString,
dataType: 'json',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
success: function(){
alert("mappy jappy");
$('input#name').reset();
$('input#email').reset();
$('textarea#text').reset();
}
});
return false;
});
您正在阻止错误的事件。您需要表单的"onsubmit"事件,而不是提交按钮的"onclick"事件。
$('#myform').on('submit', function(event){
event.preventDefault();
/* your code here */
});
欲了解更多信息,请阅读:如何防止表单被提交?
首先,重置功能不适用于文本框。。它将为表单运行。因此更正后的代码将是…
<script>
$(function(){
$('#submit1').click(function(e){
e.preventDefault();
var name = $('input#name').val();
if (name == "") {
alert("please enter a name!");
$('input#name').focus();
return false;
}
var email = $('input#email').val();
if (email == ""){
alert("please enter your email");
$('input#email').focus();
return false;
}
var content = $('textarea#text').val();
if (content == ""){
alert("please enter a comment");
$('textarea#text').focus();
return false;
}
var dataString = 'name=' + name + '&email=' + email + '&content=' + content;
$.ajax({
type: "POST",
url: "user_availability.php",
data: dataString,
dataType: 'json',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
success: function(){
alert("mappy jappy");
$('#contact-form')[0].reset();
}
});
return false;
});
});
</script>
html部分如下所示-
<form id="contact-form" method="post" enctype="multipart/form-data">
<input type="text" id="email" name="email" />
<input type="text" id="name" name="name" />
<textarea name="text" id="text"></textarea>
<input type="submit" value="submit" id="submit1" />
</form>
请检查并告诉我。。。
相关文章:
- 加载后的页面与ajax表单提交不起作用
- AngularJS JQuery Ajax表单提交等效
- 将Computed PHP Variable传递到jQuery/Ajax表单
- 当阻止Enter键提交AJAX表单时,关注下一个输入是't工作
- Ajax表单数据phpPOST不工作
- 我的ajax表单没有提交
- Javascript尽管ID不同,但只有第一个按钮提交给Ajax表单
- ajax表单提交的编码问题
- AJAX表单验证-防止空白字段
- ajax表单提交后从客户端重定向
- AJAX 表单不是 AJAX 提交
- PHP Ajax 表单提交 .什么也没发生
- Jquery&Ajax表单验证功能
- ajax表单每触发第n个select onchange事件就发送n次
- 为什么event.prventDefault()和'return false'停止我的AJAX表单提交操
- 使用jQuery和Ajax表单提交问题
- 提交AJAX表单,重定向而不是在页面上处理
- Ajax表单不返回PHP数据
- Ajax表单提交密钥或更改
- Jquery Ajax表单提交:多个表单-相同的按钮id's