执行onclientclick后onclick中的代码不执行

badroot 2011-06-14 10:34:31
为什么我执行了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="电子文件转换" />    
<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>   
<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" /> 
<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
...全文
811 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-06-15
  • 打赏
  • 举报
回复
bUp.disabled
按钮给禁了?
badroot 2011-06-15
  • 打赏
  • 举报
回复
找到问题所在了,是由于脚本中var bUp=document.getElementById("BtUpload");
bUp.disabled=true;
这个所引起的,把上面去掉,问题就解决了。但还是不明白为什么会是bup.disabled=true;所引起。
function ChnageShow()
{
var bShow=document.getElementById("showUP");

bShow.style.display="";
return true;
}
子夜__ 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 badroot 的回复:]

onclientclick="return ChnageShow();"
使用以上的方式还是不行,代码还是不会执行到onclick事件中去。
我使用的是 visual studio 2008
[/Quote]
点按钮的时候页面刷新了没有?

你从新拖一个按钮 点一下 他要是刷新的话

在这个在后台加上


BtUpload.Attribute.Add("onclick", "javascript:ChnageShow();");

在试
badroot 2011-06-15
  • 打赏
  • 举报
回复
onclientclick="return ChnageShow();"
使用以上的方式还是不行,代码还是不会执行到onclick事件中去。
我使用的是 visual studio 2008

应该跟窗口模式无关吧,我是用showModalDialog方式打开
badroot 2011-06-15
  • 打赏
  • 举报
回复
onclientclick="return ChnageShow();"
使用以上的方式还是不行,代码还是不会执行到onclick事件中去。
我使用的是 visual studio 2008
  • 打赏
  • 举报
回复
bUp.disabled='disabled';
手可摘星辰 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 sophia_2011 的回复:]
OnClientClick先于OnClick发生一般执行脚本
OnClientClick() 控制客户端提交
例如可以解决confirm('否执行?')

return true:执行OnClick事件
return false:嘛都不干

再得来说:
OnClientClick调用客户端事件OnClick调用服务器端事件当点击button时先触发OnClientClick事件再触……
[/Quote]这个还真不知道
Sophia_2011 2011-06-15
  • 打赏
  • 举报
回复
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冲突了但从性能上服务端验证耗费了服务器资源呵呵一般没困难只和客户端验证比较而已各所长各所短
  • 打赏
  • 举报
回复
还有最关键的,你都self.close()了,你还要浏览器在关闭页面之后再提交页面?!
  • 打赏
  • 举报
回复
不用写“javascript:”。另外你的方法后边最好写上一个分号;
qingYun1029 2011-06-15
  • 打赏
  • 举报
回复
怎么个不执行发???

是否onclientclick调用的js脚本中有return false ;阻止提交了???
qingYun1029 2011-06-15
  • 打赏
  • 举报
回复
好美的程序员!!!

renyiqiu 2011-06-15
  • 打赏
  • 举报
回复
按钮问题么
Lisliefor 2011-06-14
  • 打赏
  • 举报
回复
aspx页面:
<asp:Button ID="BtUpload" runat="server" Text="开始上传" Width="80px"  onclick="BtUpload_Click" />


.cs后台Page_Load方法中,添加客户端事件:

BtUpload.Attribute.Add("onclick", "javascript:ChnageShow();");
蝶恋花雨 2011-06-14
  • 打赏
  • 举报
回复
Me.BtUpload.Attributes.Add("onclick","return ChnageShow();")
md5e 2011-06-14
  • 打赏
  • 举报
回复
onclientclick="return ChnageShow()"
  • 打赏
  • 举报
回复
onclientclick="return ChnageShow();"

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧