dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:5280回复:9

input runat server 在firefox中不执行事件

楼主#
更多 发布于:2005-07-22 23:06
有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 中不能执行。


请教各位。。。
gzpbx
狐狸大王
狐狸大王
  • UID1527
  • 注册日期2004-12-29
  • 最后登录2009-06-30
  • 发帖数410
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2005-07-22 23:06
没看懂,看看在Firefox客户端生成的html代码与在IE端生成的html代码是否相同?
如果你爱上了一朵生长在一颗星星上的花,那么夜间你看着天空就感到甜蜜愉快。所有的星星上都好象开着花。
dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于: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>
dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于: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 中一个元素的一个事件,如果有客户端的响应代码与服务端的响应代码,只响应客户端。而不响应服务端的。
如果只有服务端代码,那么就响应服务端的代码。
gzpbx
狐狸大王
狐狸大王
  • UID1527
  • 注册日期2004-12-29
  • 最后登录2009-06-30
  • 发帖数410
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2005-07-22 23:06
是不是验证控件的原因?我记着验证控件生成的客户端代码会判断是否是IE浏览器的。服务端代码不就是submit过去就执行了~
如果你爱上了一朵生长在一颗星星上的花,那么夜间你看着天空就感到甜蜜愉快。所有的星星上都好象开着花。
dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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>
dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2005-07-22 23:06
尝试其他方法
尝试其他方法:

使用: <asp:ImageButton ...

但是这样的话,  client javascript 又不能控制这个元素。

我的目的就是1. javascript 要能控制这个元素,比如在点一下时换image等。
2. 在点一下时响应服务端事件。执行代码。

3. 因为响应服务端事件会相当慢,所以需要1 中换image.

看样子,在firefox 中是实现不了了。
dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2005-07-22 23:06
a
理论上讲,只要响应一个服务端事件就够了。为什么又要响应client javascript


因为服务端事件执行速度极慢,  会调用地球另一面的服务器上的web service,
而那个服务器上实现这个调用,又需要调用其他几个服务器web service.

那么现在如果不实现java script, 那么用户等不及了,又会点一下,就又响应一次服务端事件,那么等于响应了很多次服务端事件。

可能导致很多问题。

所以必须同时响应client javascript 和服务端事件。
dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2005-07-22 23:06
a
没人知道这问题如何解决吧?

所以我很久以前就已经习惯不发贴求人了。
dave dai
小狐狸
小狐狸
  • UID7505
  • 注册日期2005-07-22
  • 最后登录2005-07-26
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2005-07-22 23:06
a
我决定使用webservice 来解决这个问题了,虽然比较痛苦。

但是已经拖了很多天没有解决。
游客

返回顶部