经常用form表单提交的小伙伴有没有发现,form表单默认的提交是没有返回值的,而且默认提交成功之后是跳转,跳转的action的路径,下面写一下默认的提交如何获取到form表单的返回值json,并且阻止默认的跳转动作。

第一种方式 :让form默认调整当前的iframe 即可

页面结构见下面:

<form target="form" action="" enctype="multipart/form-data" method="post">
     <input type="file">
     <button type="submit"    id="submit" style="display:none">提交</button> 
</form>
<iframe name="form" id="form" style="display:none"></iframe>

细心的小伙伴有没有发现上面的结构多了一个iframe的隐藏内联框架,其实最主要的就是我们的form表单的target属性值等于这个iframe的name和id,那么我们就可以用iframe来接收返回值,并且把默认的跳转让iframe去跳转,下面是js的代码,来获取这个返回值json。

$("#submit").click();

$("#form").load(function(){
     var text = $(this).contents().find("body").text(); //获取到的是json的字符串
     var j = $.parseJSON(text);  //json字符串转换成json对象
     console.log(j)
})

注意,只要这个iframe框架加载完成就说明发送成功了。

第二种:引入 引用jquery-form.js文件

1.给form添加id值:

<form action="/News/SaveMessage" method="post" accept-charset="utf-8" class="form" id="frm-reg" name="frm-reg">

设置所有input标签的name属性值为数据库的字段值,即可以传值到后台

2.给提交按钮添加id值:

<input class="sub-btn fl" type="button" id="sub" name="Submit" value="提交">

3.引用jquery-form.js文件

4.jquery表单提交:

//表单提交,会把所有有name属性的值提交到后台
$("#sub").click(function () {
    $("#frm-reg").ajaxSubmit(function (data) {
        alert(data.Message);
    });
});

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐