• 提交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也可以做到,鉴于太过于简单,就不在这里留笔了。
  • 相关阅读:
    Java应用开发中的SQL注入攻击
    TOSCA自动化测试工具ppt
    SQL Server怎么备份数据库
    翻翻git之---一个丰富的通知工具类 NotifyUtil
    ZOJ
    高速掌握Lua 5.3 —— Lua与C之间的交互概览
    poj1649 Rescue(BFS+优先队列)
    面向对象在JavaScript中的接口实现
    dedecms织梦后台password忘记了怎么办?dedecms织梦后台password忘记怎样找回password?
    [ACM] POJ 3233 Matrix Power Series (求矩阵A+A^2+A^3...+A^k,二分求和或者矩阵转化)
  • 原文地址:https://www.cnblogs.com/cnaspnet/p/877439.html
Copyright © 2020-2023  润新知