提交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也可以做到,鉴于太过于简单,就不在这里留笔了。

posted on 2007-08-31 17:17  ★金★  阅读(554)  评论(0编辑  收藏  举报

导航