asp.net中document.forms['form1'].submit(); 无效的解决办法

碰到一个问题,form页面中,想通过JS来控制重复提交,在使用 document.forms['form1'].submit();时, 360浏览器中可以执行到按钮的Save_Click方法,而在Google浏览器中,页面只产生了回发,但是没有执行到Save_Click方法

Html:

<!--Html-->
<a href="#" id="Save" runat="server" onclick="saveJudge(this)" onserverclick="Save_Click">
                &nbsp;&nbsp;<i class="btn icon-save"></i> 保存
</a>
<!--JS-->
<script>
        function saveJudge(obj){
            //document.forms['form1'].__EVENTTARGET.value="Save";  //加上这句就可以了
            obj.setAttribute('disabled', true); 
            obj.style.cssText += 'color:gray; pointer-events: none;';
            document.forms['form1'].submit();
        }
</script>

JS执行后页面产生了会回发,进入了Page_Load方法,证明submit()有效,只是没有定位到要执行的方法。查看页面源码发现有一段JS:

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

这段JS是自动生成了的,通过alert(document.forms['form1'].__EVENTTARGET.value);  发现__EVENTTARGET.value  是空的,

给document.forms['form1'].__EVENTTARGET.value="绑定了后端方法的控件的Id" ,当重新执行到Submit()方法时,服务器端就知道要执行的方法是Save的Save_Click方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值