阅读:5609回复:9
input runat server 在firefox中不执行事件
有input 运行于服务端的控件:
<input type="image" src="images/Checkout.gif" style="DISPLAY: block" name="submit" id="submit" runat="server" Onclick="CheckForm();"> 下面是服务端C# 代码: private void InitializeComponent() { this.submit.ServerClick += new System.Web.UI.ImageClickEventHandler(this.submit_ServerClick); } private void submit_ServerClick(object sender, System.Web.UI.ImageClickEventArgs e) { ... } 在IE中能正常执行:submit_ServerClick 在firefox 中不能执行。 请教各位。。。 |
|
1楼#
发布于:2005-07-22 23:06
a
我决定使用webservice 来解决这个问题了,虽然比较痛苦。
但是已经拖了很多天没有解决。 |
|
2楼#
发布于:2005-07-22 23:06
a
没人知道这问题如何解决吧?
所以我很久以前就已经习惯不发贴求人了。 |
|
3楼#
发布于:2005-07-22 23:06
a
理论上讲,只要响应一个服务端事件就够了。为什么又要响应client javascript 因为服务端事件执行速度极慢, 会调用地球另一面的服务器上的web service, 而那个服务器上实现这个调用,又需要调用其他几个服务器web service. 那么现在如果不实现java script, 那么用户等不及了,又会点一下,就又响应一次服务端事件,那么等于响应了很多次服务端事件。 可能导致很多问题。 所以必须同时响应client javascript 和服务端事件。 |
|
4楼#
发布于:2005-07-22 23:06
尝试其他方法
尝试其他方法:
使用: <asp:ImageButton ... 但是这样的话, client javascript 又不能控制这个元素。 我的目的就是1. javascript 要能控制这个元素,比如在点一下时换image等。 2. 在点一下时响应服务端事件。执行代码。 3. 因为响应服务端事件会相当慢,所以需要1 中换image. 看样子,在firefox 中是实现不了了。 |
|
5楼#
发布于:2005-07-22 23:06
相关代码
<script language="javascript" type="text/javascript">
<!-- function __doPostBack(eventTarget, eventArgument) { var theform; if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) { theform = document.Form1; } else { theform = document.forms["Form1"]; } theform.__EVENTTARGET.value = eventTarget.split("$").join(":"); theform.__EVENTARGUMENT.value = eventArgument; theform.submit(); } // --> </script> <script language="javascript" type="text/javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script> |
|
6楼#
发布于:2005-07-22 23:06
是不是验证控件的原因?我记着验证控件生成的客户端代码会判断是否是IE浏览器的。服务端代码不就是submit过去就执行了~
|
|
|
7楼#
发布于:2005-07-22 23:06
已经测试
有input:
<input type="image" src="images/finalCheckout.gif" style="DISPLAY: block" name="submit" id="submit" runat="server" Onclick="CheckForm();"></input> 那么,在firefox 中不响应服务端onclick 事件。 如果去掉:Onclick="CheckForm();", 在form 中写: <form id="Form1" runat="server" onsubmit="CheckForm();"> 在firefox 中不响应服务端onclick 事件。 也就是说:在firefox 中一个元素的一个事件,如果有客户端的响应代码与服务端的响应代码,只响应客户端。而不响应服务端的。 如果只有服务端代码,那么就响应服务端的代码。 |
|
8楼#
发布于:2005-07-22 23:06
a
这个问题就是说: Html 控件Input Type = Image 时,指定在服务端运行:runat=server, 并有Onclick = ... java script 事件。 在firefox 中不响应服务端事件: OnClick 在IE 中完全正常响应服务端事件: OnClick 我怀疑firefox 是否只响应了client javascript 事件,就不再响应服务端事件了。 那么我需要改事件,不能让这两个事件一样。 IE HTML: <input src="images/finalCheckout.gif" language="javascript" onclick="CheckForm(); if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " name="submit" id="submit" type="image" style="DISPLAY: block" /></input> FIREFOX HTML: <input src="images/finalCheckout.gif" language="javascript" onclick="CheckForm(); if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " name="submit" id="submit" type="image" style="DISPLAY: block" /></input> |
|
9楼#
发布于:2005-07-22 23:06
没看懂,看看在Firefox客户端生成的html代码与在IE端生成的html代码是否相同?
|
|
|