Javascript asp表单在服务器上运行,不允许内部html按钮onlick setinterval工作
我试图让服务器端按钮在客户端执行一些操作(Javascript asp表单在服务器上运行,不允许内部html按钮onlick setinterval工作,javascript,html,asp.net,Javascript,Html,Asp.net,我试图让服务器端按钮在客户端执行一些操作(id=“formSrvBtn”),但由于某些原因,setInterval功能无法按预期工作(要计算的表达式未计算),我还尝试使用客户端按钮而不是服务器按钮(id=“formCltBtn”)这也将是一个有效的选择,但有同样的不想要的结果。。。 使其工作的唯一方法是将按钮完全置于服务器端上下文之外(id=“cltBtn”),这在我们的实际场景中是无效的 以下是一个小型aspx的html,用于确认上述所有内容: <%@ Page Language="vb
id=“formSrvBtn”
),但由于某些原因,setInterval功能无法按预期工作(要计算的表达式未计算),我还尝试使用客户端按钮而不是服务器按钮(id=“formCltBtn”
)这也将是一个有效的选择,但有同样的不想要的结果。。。
使其工作的唯一方法是将按钮完全置于服务器端上下文之外(id=“cltBtn”
),这在我们的实际场景中是无效的
以下是一个小型aspx的html,用于确认上述所有内容:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication1._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script type = "text/javascript">
function dumb_setInterval() {
setInterval(function(){alert('dumb setInterval after 5000ms!');}, 5000);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<p><asp:ImageButton id="formSrvBtn"
runat="server"
OnClientClick="dumb_setInterval();"
AlternateText="This server img button's setInterval does not work!"
>
</asp:ImageButton></p>
<p><button id="formCltBtn"
onclick="dumb_setInterval();"
>
This client button's setInterval does not work!
</button></p>
</form>
<p><button id="cltBtn"
onclick="dumb_setInterval();"
>
This client button's setInterval works!
</button></p>
</body>
</html>
函数dumb_setInterval(){
setInterval(函数(){alert('dumb setInterval after 5000ms!');},5000);
}
这里是下载解决方案的直接链接:您需要确保不会调用ImageButton
上的OnClientClick
的默认行为,因为这将强制回发。您可以通过从dumb\u setInterval()
方法返回false来执行此操作:
function dumb_setInterval() {
setInterval(function(){alert('dumb setInterval after 5000ms!');}, 5000);
return false;
}
然后将返回语句添加到属性:
<asp:ImageButton id="formSrvBtn"
runat="server"
OnClientClick="return dumb_setInterval();"
当然了,@RGragam!返回OnClientClick!猜测不只是setInterval谁是哑巴…您的第二个解决方案效果很好:或者从dumb\u setInterval方法返回false://\u如果使用返回false,请不要忘记在客户端单击时更新ImageButton;方法:。谢谢这件事我自己做过很多次,我都数不清了!因此,如果您可以删除第一个建议,那就无关紧要了,因为cltBtn可以正常工作,但不是解决此问题的有效方法。这将使新来者更清楚地了解这一点。然后我会很高兴地把你的回答标记为:谢谢!