HTML/JQuery:按钮在根本不应该提交的时候提交一次
HTML/JQuery: Button submits once when it shouldn't at all
我正在使用jQuery来允许表单提交,所以我不希望表单自行提交。
这是我的表格:
<form class="navbar-form navbar-right" id="signform">
<div class="form-group">
<input type="text" placeholder="Username" class="form-control">
</div>
<div class="form-group">
<input type="password" placeholder="Password" class="form-control">
</div>
<button id="signbtn" class="btn btn-success">Sign in</button>
</form>
这是我的JQuery代码:
var signingIn = false;
$(document).ready(function() {
$('#signbtn').click(function() {
if (signingIn) return;
signingIn = true;
var img = $('<img id="loader" style="padding-left: 10px;" src="loader.gif"/>');
$(this).after(img);
var data = $('signform').serialize();
$.ajax({
url: '/logs',
type: 'post',
data: data,
done: function() {
$('#loader').remove();
alert('success');
}
});
});
});
现在,当我转到 url: website.com/index.html 并单击登录时,它会刷新页面(我根本不想要的内容)并转到 website.com/index.html? - 现在当我再次单击它时,什么也没发生(正是我一直想要的,所以我通过 jQuery 添加的元素不会丢失)。
你想像这样使用 jQuery ajax 调用:
$(document).on('click','button#signbtn', function(){
var $form = $('form#signform');
var url = $form.attr('action');
$.ajax({
type: "POST",
enctype: 'mutipart/form-data',
url: url,
data: $form.serialize(), // serializes the form's elements.
success: function(data){// whatever you want your code to do on success}
})
return false; // avoid to execute the actual submit of the form.
});
$(function() {
$( '#signform' ).submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: $(this).attr( 'action' ),
data: $(this).serialize(),
success: function(result) {
// Do something on success
}
});
});
});
相关文章:
- Don't提交jquery后重新加载
- 添加代码以防止重复提交 JQuery 后提交不起作用
- 防止在验证失败时提交 jQuery 表单
- 提交 jquery 后删除表单 (JSP&Servlet)
- 无法在 Meteor 中提交 JQuery 日期选取器值
- 未提交 JQuery 验证的表单
- 加载HighCharts图表/数据在表单上提交jQuery
- 如果电子邮件输入处于焦点上,则阻止输入按钮表单提交 (jquery)
- preventDefault() 停止提交 jquery 表单值
- 提交 JQuery 表单 $.post() 处理成功时的显示消息
- 如何创建AngularJS指令以在按下回车按钮时提交jquery对话框
- 提交jquery后清除表单数据
- 在CodeIgniter中使用Bootstrap提交jQuery表单
- 防止表单被提交- jquery
- 显示和隐藏表与过滤后的内容提交(jQuery)
- 表单自动提交jquery
- 向服务器提交Jquery按钮的值
- submit函数在第一次提交jquery之后提交两次,PHP
- 防止hubspot表单提交- jQuery验证
- 如何防止表单提交 JQuery