我继承了一个 ASP.NET 2.0 项目,我注意到的一件事是用户必须单击dropdownlist
两次才能展开它 - 为什么会这样?
事件顺序
- 第一次单击赋予控件焦点,第二次单击将展开它。
- 该应用程序使用 Master/Content 页面并且启用了 Ajax。
看起来这在 IE6 中没有发生,但在 IE7 中确实发生了。
我继承了一个 ASP.NET 2.0 项目,我注意到的一件事是用户必须单击dropdownlist
两次才能展开它 - 为什么会这样?
事件顺序
看起来这在 IE6 中没有发生,但在 IE7 中确实发生了。
找到它并对其进行排序(暂时)。
问题是由用户控件插入的 Javascript 函数引起的,该函数正在向 DropDownLists 添加样式。为什么这不是在 CSS 中完成的,我不知道(但很快就会),但注释掉以下函数解决了我的问题:
function inputOnFocus(objInput)
{
objInput.style.backgroundColor = sHighLightBgColor;
objInput.style.border = sBorderHighlight;
//objInput.className = "inputOnFocus";
sIDWithFocus = objInput.id;
}
我不太确定如何/为什么将其应用于某些 DDL 而不是其他 DDL,但目前(即将推出客户演示)我并不在乎 - 我会在有机会时深入研究。
感谢@LFSR Consulting、@Scott Evernden 和@kogus 的意见。
dunno if this is the best solution and haven't tried it .. but how about setfocus at onload() to the control in question ?
If you're using IE7 and using the onFocus event for those drop downs take a look at this:
http://forums.asp.net/p/1049119/1479078.aspx#1479078
Otherwise might I suggest taking a look at:
Can you throw some code up so we can take a look?
我知道我在旧帖子上发帖;但是,我想在这方面分享我的两分钱,因为它可能会在未来对任何人有所帮助。
我最近在做一个快速表单,想用黄色突出显示用户会去的所有字段,当焦点丢失时显然会变回白色。
没有进入代码,因为我没有使用 ASP.NET,只是 javascript 部分......我为解决这个问题所做的就是为 onmousedown 创建另一个事件。通过仅使用 onfocus 部分,我不得不在下拉框中单击两次。一次设置焦点,另一次单击并列出项目。通过添加 onmousedown 功能,它允许我在单击以及选项卡或其他形式的焦点转移时发生颜色变化。
当然,不需要有对应物,因为 onblur 会处理它(onfocus 的对应物)。
Is the drop-down data being populated in the on-drop-down event? If so, an easy fix would be to set the DroppedDown state to True at the end of the data load.