提交表单而不刷新页面

Posted baimeishaoxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提交表单而不刷新页面相关的知识,希望对你有一定的参考价值。

用Form+iFrame

<iframe id="if" class="fr" name="fr"></iframe>

<form target="fr" action="/Home/test">

    <input type="submit" class="submit" value="Start" onclick="return sub()"/>

</form>

 

<script>   

    //获取iframe对象

    var iframe = document.getElementById("if");

    var flag = 0;

    //JS绑定事件

    //el:表示选中的dom元素

    //type:事件名称

    //fn:事件处理器

    function addEvent(el, type, fn) {

        if (el.addEventListener) {

            //绝大多数非IE内核浏览器

            el.addEventListener(type, fn, false);

        } else if (el.attachEvent) {

            //IE内核

            el.attachEvent(‘on‘ + type, function () {

                fn.call(el);

            });

        } else {

            //选择dom元素错误

            throw new Error(‘不支持该dom元素‘);

        }

    }

    

    addEvent(iframe, ‘load‘, function () {        

        if (flag != 0) {

            alert("执行完毕!");

            //事件这里处理完就把flag变成0

            flag = 0;

        }

    });

 

    function sub() {

        //如果flag为0,说明是刚进来没有请求过。

        //然后把它变成1

        //说明我已经在请求了

        //通知事件那边准备处理

        if (flag == 0) {

            flag = 1;

        }

        return true;

    }

</script>

关于标志位:

也可以利用服务器返回值来判断。事件处理器中,判断iframe中是否有服务器返回值,没有说明是刚进来,没有请求过。有的话就表示是因为请求而触发的onload事件。事件处理器处理完之后,再把iframe清空。就是这样。本质上跟第一种是一样的。

以上是关于提交表单而不刷新页面的主要内容,如果未能解决你的问题,请参考以下文章

使用ajax将表单提交给php而不刷新页面

在浏览器中刷新页面而不重新提交表单

提交表单并刷新产品 div 而不刷新页面

提交表单而不刷新页面

提交表单而不刷新页面

使用Jquery时无法读取数据库,Ajax提交表单而不刷新页面