利用iframe实现表单的无刷新提交

    表单的无刷新提交,除了使用ajax实现,利用iframe也可实现表单的无刷新提交(其关键在于设置iframe的name与表单的target值相同)。
    下面代码利用iframe实现表单的无刷新提交兼容到主流浏览器(IE6+,Firefox最新,Chrome最新)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>利用iframe实现表单的无刷新提交</title>
    <style type="text/css">
        .f-hidden{
            display: none;
        }
    </style>
</head>
<body>
<iframe src="" id="targetFrame" name="targetFrame" class="f-hidden"></iframe>
<form id="showForm" action="/crops/delete" method="post" enctype="application/x-www-form-urlencoded" target="targetFrame">
    <label><input type="text" name="username"/></label>
    <button type="submit">提交</button>
</form>
<!--    <script type="text/javascript">
        var showForm=document.getElementById('showForm');
        showForm.addEventListener('submit',function(event){
            if(!showForm.username.value){
                event.preventDefault();
                return;
            }
        });
    </script> -->
<script type="text/javascript">
    var targetFrame=document.getElementById('targetFrame');
    //兼容IE事件
    function addEvent(node,event,handler){
        if(!!node.addEventListener){
            node.addEventListener(event,handler,!1);
        }else{
            node.attachEvent('on'+event,handler);
        }
    }
    //给iframe注册load事件
    addEvent(targetFrame,'load',function(event){
        try{
            var result = JSON.parse(targetFrame.contentWindow.document.body.textContent);
            if(result.code === 200){
                //正确返回提交的结果
                console.log(result);
            }
        }catch(e){
            //捕获错误
        }
    })

</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值