为什么我执行了onclientclick中的代码后onclick中的代码会不执行呢?
  代码如下:
   <head>
    <link href="css/Styles.css" type="text/css" rel="stylesheet" />
    <link href="css/Login.css" rel="stylesheet" type="text/css" />
    <base target="_self" />
    <script type="text/javascript">
        function ChnageShow()
        {   
            var bUp=document.getElementById("BtUpload");
            var bShow=document.getElementById("showUP");
            
            bUp.disabled=true;
            bShow.style.display="";
            return true;
         }
        
    </script>
</head>
<body class="bg_color">
    <form id="form1" runat="server">
    <input type="hidden" id="tableName"  name="tableName" style="width:1px;" runat="server"/>
    <input type="hidden" id="recid" name="recid" style="width:1px;" runat="server" />
    
    <div style="margin-left:20px;margin-top:20px; margin-bottom:5px; width:460px;">  
        <table style="width:460px;">
            <tr>
                <td style="width:460px;">
                        <asp:FileUpload ID="file1" style="width:455px;" runat="server" /><br />
                        <asp:TextBox ID="des1" TextMode="MultiLine" Rows="3" Width="450px" runat="server" ToolTip="输入上传原文的描述信息"></asp:TextBox><br />
                </td>
            </tr>   
        </table>
    </div>    <div style="margin-left:20px; margin-top:1px;width:460px;">
        <asp:CheckBox ID="chkTrans" runat="server"  Text="电子文件转换" />&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:CheckBox ID="chkFullText" runat="server" Text="全文内容提取 (只适用 OFFICE、PDF、TXT 等类型文件)" />
    </div>
    <div id="showUP" runat="server" style="margin-left:20px; margin-top:10px;width:460px; text-align:center; display:none;">
        <asp:Label ID="sTile" runat="server" Text="正在上传电子文件..."></asp:Label>&nbsp;&nbsp;&nbsp;
        <img id="img1" src="images/Loading/loading2.gif" />
    </div>
    <div style="width:460px; margin-left:17px;margin-top:20px;">
        <asp:Button ID="BtUpload" runat="server" Text="开始上传" Width="80px" onclientclick="ChnageShow()" onclick="BtUpload_Click" />&nbsp;
        <asp:Button ID="btn_close" runat="server" OnClientClick="javascript:self.close()" Text="退出"  Width="80px" />
    </div>
    </form>
</body>
  以下为后台代码:
   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load        If Not Page.IsPostBack Then
            Me.tableName.Value = Request("table") & ""
            Me.recid.Value = Request("recid") & ""
            Me.BtUpload.Attributes.Add("onclick","ChnageShow()")
        End If    End Sub    Protected Sub BtUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtUpload.Click
        Dim fileinfo As HttpPostedFile
        Dim file_id As String
        Dim file_name As String
        Dim file_Extension As String
        Dim file_loc As String
        '数据库字段
        Dim time_subpath As String
        Dim root, web_path As String
        Dim user_id As String = getUserId()
        Dim user_name As String = getUserName()
        Dim Descript As String = Me.des1.Text.Replace("'", "‘")
        Dim DFiles As String()
        Dim sFileID As String        Try            fileinfo = Me.file1.PostedFile
            If fileinfo.ContentLength <= 0 Then
                Alert("文件为空,请选择其它文件。")
                Me.BtUpload.Enabled = True
                Me.showUP.Visible = False
                Exit Sub
            End If
            '读取服务端设置            '读取文件属性
            file_id = Getrecid()
            file_name = Path.GetFileName(fileinfo.FileName)
            file_Extension = Path.GetExtension(fileinfo.FileName)            time_subpath = getTimeSubPath()            'filename = file_id & file_Extension
            file_loc = "\" & Me.tableName.Value & "\" & time_subpath & "\" & Me.recid.Value.Trim("'") & "\"
            root = Server.MapPath(Request.ApplicationPath) & "\" & SourceFile & file_loc
            web_path = root & file_name 'filename            MakeDirectory(Server.MapPath(Request.ApplicationPath) & "\" & SourceFile, True)
            MakeDirectory(root)            fileinfo.SaveAs(web_path)            ReDim Preserve DFiles(0)
            DFiles(0) = web_path            With ODoc
                .DatabaseType = mDatabaseInfo.DataType
                .Connection = mDatabaseInfo.ConnectString
                .AddDocByName(Me.tableName.Value, "recid", Me.recid.Value, DFiles)
                sFileID = .FileDocID
                If .ErrorMessage <> "" Then
                    Alert(ODoc.ErrorMessage)
                Else
                    If Me.chkTrans.Checked = True Then
                        TrnaToSWF(DFiles(0), sFileID)
                    End If
                    Alert("文件上传成功")
                End If
            End With
            BtUpload.Enabled = True
            Me.showUP.Visible = False        Catch ex As Exception
            BtUpload.Enabled = True
            Me.showUP.Visible = False
            Alert(ex.Message.ToString)
        End Try
    End Sub

解决方案 »

  1.   

    onclientclick="return ChnageShow();" 
      

  2.   

    onclientclick="return ChnageShow()"
      

  3.   

    Me.BtUpload.Attributes.Add("onclick","return ChnageShow();")
      

  4.   

    aspx页面:
    <asp:Button ID="BtUpload" runat="server" Text="开始上传" Width="80px"  onclick="BtUpload_Click" />.cs后台Page_Load方法中,添加客户端事件:BtUpload.Attribute.Add("onclick", "javascript:ChnageShow();");
      

  5.   

    onclientclick="return ChnageShow();" 
    使用以上的方式还是不行,代码还是不会执行到onclick事件中去。
    我使用的是 visual studio 2008
      

  6.   

    onclientclick="return ChnageShow();"  
    使用以上的方式还是不行,代码还是不会执行到onclick事件中去。
    我使用的是 visual studio 2008应该跟窗口模式无关吧,我是用showModalDialog方式打开
      

  7.   

    点按钮的时候页面刷新了没有?你从新拖一个按钮 点一下 他要是刷新的话 在这个在后台加上
    BtUpload.Attribute.Add("onclick", "javascript:ChnageShow();");在试
      

  8.   

    找到问题所在了,是由于脚本中var bUp=document.getElementById("BtUpload");
    bUp.disabled=true;
    这个所引起的,把上面去掉,问题就解决了。但还是不明白为什么会是bup.disabled=true;所引起。
     function ChnageShow()
      {   
      var bShow=document.getElementById("showUP");
        
      bShow.style.display="";
      return true;
      }
      

  9.   

    怎么个不执行发???是否onclientclick调用的js脚本中有return false ;阻止提交了???
      

  10.   

    不用写“javascript:”。另外你的方法后边最好写上一个分号;
      

  11.   

    还有最关键的,你都self.close()了,你还要浏览器在关闭页面之后再提交页面?!
      

  12.   

    OnClientClick先于OnClick发生一般执行脚本
    OnClientClick() 控制客户端提交
    例如可以解决confirm('否执行?')return true:执行OnClick事件
    return false:嘛都不干再得来说:
    OnClientClick调用客户端事件OnClick调用服务器端事件当点击button时先触发OnClientClick事件再触发OnClick事件一般我们用 OnClientClick验证我们提交数据但这个一定要返回ture或者false即一定要加上return否则OnClick失效当返回false时OnClick服务器端事件才被中止当你js验证错误也会跳过验证直接执行服务器端事件OnClick为了避免这样错误可以考虑用服务端验证这样就省去了OnClientClick事件就不用考虑和OnClick冲突了但从性能上服务端验证耗费了服务器资源呵呵一般没困难只和客户端验证比较而已各所长各所短