2011-12-27 43 views
1

我试图从其他人的代码中修复此错误。基本上,有此按钮的iframe内:按钮服务器OnClick事件未在Firefox中被解雇

<asp:Button runat="server" ID="doUpload" OnClick="DoUpload_Click" OnClientClick="alert('OnClientClick');"/> 

的.js文件,此行被称为:

$('#doUpload', this.getIFrameDocument()).click(); 

这完全适用于IE和Chrome。服务器事件处理程序“DoUpload_Click”在没有问题的情况下执行,Firefox除外。在Firefox上,OnClientClick被调用,但不是服务器端事件处理程序。我将它追踪到了不可见的iframe(display:none)。

现在,任何想法我仍然可以执行服务器处理程序,同时保持iframe不可见?一个想法是将iframe放在用户浏览器维度之外的坐标上......但欢迎任何其他想法!

+1

你为什么使用javascript事件触发服务器事件? OnClick事件应该自行触发回发,并应调用doUpload方法。 – rie819 2011-12-27 16:48:05

+0

@ rie819:可用于在执行服务器端功能之前验证任何其他输入状态。 – nerdcoder 2011-12-27 16:53:22

+0

是啊...它是页面的一部分,可以让你上传某些种类的文件而不用重新加载页面。这是间接的,我同意......但它达到了效果。 – CBC22 2011-12-27 16:56:31

回答

0

尝试在您的js客户端单击事件处理程序上添加Form.submit触发器。

1

也许this blog entry会帮助你。但首先,您可以尝试在任何javascript命令调用后使用“return true;”;如果客户端方法返回false,则浏览器事件处理程序可能会抑制服务器端执行 - 因此,如果根本没有返回值,则它可能会有不同的行为(例如,默认情况下为false)。

两个都没有测试,但。