页面:
<html:select property="timearea" style="width:200px" οnmοuseοver="selMouseOver(this)" οnmοuseοut="selMouseOut(this)"
οnkeydοwn="catch_keydown(this)" οnkeypress="catch_press(this)" οnfοcus="catch_focus(this)">
js脚本:
function getEvent(){ //同时兼容ie和ff的写法
if(document.all) return window.event;
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
|| (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;
}
//定义 select 原值
var oldValue,oldText;
//select下拉框的onkeydown事件,修改下拉框的值
function catch_keydown(sel)
{
switch(event.keyCode)
{
case 13: //回车键
event.returnValue = false;
break;
case 27: //Esc键
sel.options[sel.selectedIndex].text = oldText;
sel.options[sel.selectedIndex].value = oldValue;
event.returnValue = false;
break;
case 8: //空格健
var s = sel.options[sel.selectedIndex].text;
s = s.substr(0,s.length-1);
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text)
{
sel.options[sel.selectedIndex].value=s;
sel.options[sel.selectedIndex].text=s;
}
event.returnValue = false;
break;
}
if (!event.returnValue && sel.onchange)
sel.onchange(sel)
}
//select下拉框的onkeypress事件,修改下拉框的值
function catch_press(sel){
if(sel.selectedIndex>=0){
var s = sel.options[sel.selectedIndex].text + String.fromCharCode(event.keyCode);
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text)
{
sel.options[sel.selectedIndex].value=s;
sel.options[sel.selectedIndex].text=s;
}
event.returnValue = false;
if (!event.returnValue && sel.onchange)
sel.onchange(sel)
}
}
//select下拉框的onfocus事件,保存下拉框原来的值
function catch_focus(sel) {
oldText = sel.options[sel.selectedIndex].value;
oldValue = sel.options[sel.selectedIndex].value;
}
//恢复select下拉列表当前选中的值
function LoadSelect(obj,value)
{
for (var i=0; i< obj.options.length; i++)
if (obj.options[i].value == value)
{
obj.selectedIndex = i;
break;
}
}
//时区select 选择框鼠标上移时提示选择的内容
function selMouseOver(obj)
{ var evt = getEvent();
with (document.getElementById("div_hint"))
{
innerText = obj.options[obj.selectedIndex].text;
if (innerText.length > 0) {
innerHTML = " " + innerText + " ";
style.display = "";
var top = findOffsetTop(document.getElementById("ttd"));
var left = findOffsetLeft(document.getElementById("ttd"))+document.getElementById("ttd").offsetWidth;
style.left = left;
style.top = top;
}
}
}
//国家select 选择框鼠标上移时提示选择的内容
function selMouseOver1(obj)
{ var evt = getEvent();
with (document.getElementById("div_hint"))
{
innerText = obj.options[obj.selectedIndex].text;
if (innerText.length > 0) {
innerHTML = " " + innerText + " ";
style.display = "";
var top = findOffsetTop(document.getElementById("ctd"));
var left = findOffsetLeft(document.getElementById("ctd"))+document.getElementById("ctd").offsetWidth;
style.left = left;
style.top = top;
}
}
}
function findOffsetTop(o) {
var t = 0;
if (o.offsetParent) {
while (o.offsetParent) {
t += o.offsetTop;
o = o.offsetParent;
}
}
return t;
}
function findOffsetLeft(o) {
var t = 0;
if (o.offsetParent) {
while (o.offsetParent) {
t += o.offsetLeft;
o = o.offsetParent;
}
}
return t;
}
//select 选择框鼠标移开时消失
function selMouseOut(obj)
{
with (document.getElementById("div_hint"))
{
style.display = "none"
}
}