提交表单而不革新页面

用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清空。就是如许。本质上跟第一种是一样的。

    原文作者:AlexZ33
    原文地址: https://segmentfault.com/a/1190000010297329
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞