使用ajax优雅快捷地提交表单

在使用ajax提交表单的时候很多人会采用下面的方式:

<input type='text' name='name'>
<input type='text' name='age'>
<input type="button" onclick='submit_form()' value="提交">
...
<script>
submit_form() {
	data = {
		name: $("input[name='name']").val(),
		age: $("input[name='age']").val(),
		...
	}
	$.ajax({
		url: 'submit.php',
		type: 'post',
		data: data,
		dataType: 'json',
		success: function(e) {
		}
	})
}
</script>

这种方法虽然也能够完成功能,但是很麻烦,很不优雅,这里介绍一种方法:

<form action='submit.php'>
<input type='text' name='name'>
<input type='text' name='age'>
<button type="submit">提交</button>
<form>
$('form').submit(function(e) {
	//preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。
    e.preventDefault();
    //防止伪变量this变化,提前将其赋值给self
    var self = $(this);

	$.post(
		self.attr('action'),
		//序列化表单值,创建 URL 编码文本字符串。
		self.serialize(),
		function (result) {
            if (result.success) {
            	//弹窗1秒后跳转到index.php
                sucess_warning(result.msg);
                setTimeout(function () {
                    window.location.href = index.php;
                }, 1000);
            } else {
                fail_warning(result.msg);
                return false;
            }
        },
        'json'
	).complete(function(result) {
        var sqlError = result.responseText.indexOf('SQL');
        if (result.status == 200 && sqlError != -1) {
            fail_prompt('SQL错误:' + result.responseText, 3000);
            return false;
        }
    });
});

这样可以禁用表单原来的方式提交,然后自动序列化表单值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值