提交表單而不刷新頁面


用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清空。就是這樣。本質上跟第一種是一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM