jquery表单拦截和继续提交的问题

$(function(){
	$("form[type=ajax]").submit(function(){
		form = $(this);
		$.post(
			window.location,
			form.serialize(),
			function(data){
				if(data != 1){
					alert("报错");
				}else{
					form.submit();
					return true;
				}
			}
		);
		return false;
	});
});

如上我想在返回的data != 1 的时候拦截住表单提交并且弹出错误,当data=1的时候直接继续submit()。现在的问题是拦截没问题了,但是当data=1的时候提交不了。

我知道可以通过把提交按钮<input type="submit">改成<input type="button">来实现,但是那样的话当js被屏蔽掉的时候就无法正常提交表单了。所以以上实现的前提是<input type="submit">

阅读 20.4k
3 个回答
$(function(){
        $("form[type=ajax]").submit(function(){
                form = $(this);
                $.post(
                        window.location,
                        form.serialize(),
                        function(data){
                                if(data != 1){
                                        alert("报错");
                                }else{
                                        form.unbind('submit');
                                        form.submit();
                                        return true;
                                }
                        }
                );
                return false;
        });
});

可以试试 e.preventDefault() 接口??

去掉return true 就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题