Button OnClientClick 问题

谈阿大 2011-06-07 01:09:51
前台页面 调用dd这个function 之后返回值不能触发 OnClick事件,请问哪里出错?
 <asp:Button ID="btnOk1" runat="server" CssClass="button6" UseSubmitBehavior="false"
OnClientClick="return dd(this);" Text="已消费" OnClick="btnOk_Click" />

调用JS代码

function dd(obj) {
var avg = document.getElementById("<%=hd_renjun.ClientID %>").value;
var ren = document.getElementById("<%=txtrenshu.ClientID %>").value;
var customerMoney = document.getElementById('xfje').value;
var allMoney = avg * ren;
if (allMoney >= customerMoney) {
alert("消费金额小于最低消费下限,消费金额有可能存在问题!");
if (ConFirm("是否要确认已消费?")) {
obj.value = "已消费";
obj.disabled = true;
document.getElementById("IsSubmit").value = (new Date()).getTime();
return true;
} else {
return false;
}
}
else {
if (ConFirm("是否要确认已消费?")) {
obj.value = "已消费";
obj.disabled = true;
document.getElementById("IsSubmit").value = (new Date()).getTime();
return true;
} else {
return false;
}
}
...全文
111 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
谈阿大 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sp1234 的回复:]
你应该稍微研究一下每一个asp.net控件输出到浏览器端的html是什么。
对于设置了属性UseSubmitBehavior="false"的button控件,它输出到客户端的onclick是类似这样的:
<input type="button" onclick=return dd(this); __doPostback('.....')" ......
它如何还能回发……
[/Quote]
是呀,惭愧了!居然翻了这个错误。
回头是岸 2011-06-07
  • 打赏
  • 举报
回复
那么这样写一样可以 在return true之前 把这个加上 __doPostback('.....') 同样能触发

function dd(obj) {
var avg = document.getElementById("<%=hd_renjun.ClientID %>").value;
var ren = document.getElementById("<%=txtrenshu.ClientID %>").value;
var customerMoney = document.getElementById('xfje').value;
var allMoney = avg * ren;
if (allMoney >= customerMoney) {
alert("消费金额小于最低消费下限,消费金额有可能存在问题!");
if (ConFirm("是否要确认已消费?")) {
obj.value = "已消费";
obj.disabled = true;
document.getElementById("IsSubmit").value = (new Date()).getTime();
__doPostback('.....','');
return true;
} else {
return false;
}
}
else {
if (ConFirm("是否要确认已消费?")) {
obj.value = "已消费";
obj.disabled = true;
document.getElementById("IsSubmit").value = (new Date()).getTime();
__doPostback('.....','');
return true;
} else {
return false;
}
}
}

  • 打赏
  • 举报
回复
[Quote=引用 5 楼 panchunlong 的回复:]

强悍!!
[/Quote]

呵呵,这是不需要理由的。
  • 打赏
  • 举报
回复
嗯,花了一点时间看了一下你的dd函数。在onclientclick中应该类似这样写:
OnClientClick="if(!dd(this))return false;"
panchunlong 2011-06-07
  • 打赏
  • 举报
回复
强悍!!
  • 打赏
  • 举报
回复
上面 onclick= 后边少了一个"号。自己补上。
  • 打赏
  • 举报
回复
你应该稍微研究一下每一个asp.net控件输出到浏览器端的html是什么。

对于设置了属性UseSubmitBehavior="false"的button控件,它输出到客户端的onclick是类似这样的:

<input type="button" onclick=return dd(this); __doPostback('.....')" ......

它如何还能回发?


你自己回答自己这个问题(我懒的问你了):为什么要去写return呢?
porschev 2011-06-07
  • 打赏
  • 举报
回复

UseSubmitBehavior设为true看看
谈阿大 2011-06-07
  • 打赏
  • 举报
回复
JS代码少贴了一个括号
特地从贴一下JS代码

function dd(obj) {
var avg = document.getElementById("<%=hd_renjun.ClientID %>").value;
var ren = document.getElementById("<%=txtrenshu.ClientID %>").value;
var customerMoney = document.getElementById('xfje').value;
var allMoney = avg * ren;
if (allMoney >= customerMoney) {
alert("消费金额小于最低消费下限,消费金额有可能存在问题!");
if (ConFirm("是否要确认已消费?")) {
obj.value = "已消费";
obj.disabled = true;
document.getElementById("IsSubmit").value = (new Date()).getTime();
return true;
} else {
return false;
}
}
else {
if (ConFirm("是否要确认已消费?")) {
obj.value = "已消费";
obj.disabled = true;
document.getElementById("IsSubmit").value = (new Date()).getTime();
return true;
} else {
return false;
}
}
}

62,073

社区成员

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

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

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

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