zoukankan      html  css  js  c++  java
  • 提交disabled按钮的几种方法

    1.
    <script type="text/javascript" language="javascript">
        
    function chk(frm) {
            
    //debugger;
            var et = document.getElementById("__EVENTTARGET");
            
    var btn, btns;
            
    if(et) btns = document.getElementsByName(et.value);
            btn 
    = (btns && btns.length > 0? btns[0] : btns;
            
    if(btn) {
                btn.value 
    = '提 交';
                btn.disabled 
    =true;  
                document.getElementById('btnClean').disabled
    =true;
            }

            
    return true;
        }

        
    function markWhoSumbit(whoiseName)
        
    {           
            
    var btn = document.getElementById("__EVENTTARGET");
            
    if(!btn) {
                btn 
    = document.createElement("input");
                btn.type
    ="hidden";
                btn.name
    ="__EVENTTARGET";            
                btn.id
    ="__EVENTTARGET"
                document.forms[
    0].appendChild(btn);
            }

            btn.value
    =whoiseName;
        }

    </script>
    onsubmit="return chk(this);"/OnClientClick="markWhoSumbit(this.name)"
    此种方法发现一个问题,有些javascript事件不能触发。

    2.
        <script language="javascript" type="text/javascript">
        
    <!--  
        
    function disableOtherSubmit()
        
    {   var obj = event.srcElement;
            
    var objs = document.getElementsByTagName('input');
            
    for(var i=0; i<objs.length; i++)
            
    {
                nms
    =objs[i].type.toLowerCase();
                
    if((nms == 'submit')||(nms == 'reset')||(nms == 'button'))
                
    {
                    objs[i].disabled 
    = true;
                }

            }

        }
      
        
    //-->
     </script>

            private void DisBtn()
            
    {
                System.Text.StringBuilder sb 
    = new System.Text.StringBuilder();
                sb.Append(
    "if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }}");//保证验证函数的执行
                sb.Append("if(window.confirm('确定要提交数据?')==false) return false;");//自定义客户端脚本
                sb.Append("disableOtherSubmit();");// disable所有submit按钮
                sb.Append(this.GetPostBackEventReference(this.btnSubmit));//用__doPostBack来提交,保证按钮的服务器端click事件执行
                sb.Append(";");
                btnSubmit.Attributes.Add(
    "onclick", sb.ToString());
            }

                this.GetPostBackEventReference(this.btnSubmit); 
                
    if (!IsPostBack)
                
    {
                    DisBtn();
                }
    这种方法就客服了第一种错误,两种方法都可以正常验证服务器端控件,对验证控件不产生影响。
    AJAX也可以做到,鉴于太过于简单,就不在这里留笔了。
  • 相关阅读:
    第四周
    第二次作业
    jsp
    软件测试第一次
    增删改查
    用户添加
    登录
    购物商城
    jsp第七周作业
    jsp第六周作业
  • 原文地址:https://www.cnblogs.com/cnaspnet/p/877439.html
Copyright © 2011-2022 走看看