自己写的js~~ 可输可选的下拉框。第一次发自己的代码,轻点拍砖,第一次会疼的。

qiangv 2008-01-05 12:56:55
汗,还得分开,大家将就着看。
写c++养成习惯了,一个分号就一行,还得按照代码断行~~~~
导致行数太多,在公司统计工作量的时候,我都十分害羞~~~~

写这个的目的是:自己做的项目中有dropdownlist的地方,都要改成可以输入,根据输入的值自动换成相应的项。
而项目中这种地方有几十个,就弄了个,还没测试完,自己的需求还没实现。

<html>
<head>
</head>
<body>
<select id="ss">
<Option>上海</Option>
<Option>天津</Option>
<Option>合肥</Option>
<Option>广东</Option>
<Option>杭州</Option>
<Option>福建</Option>
<Option>厦门</Option>
<Option>辽宁</Option>
<Option>黑龙江</Option>
<Option>海南</Option>
<Option>乌鲁木齐</Option>
<Option>哈尔滨</Option>
<Option>宁夏</Option>
<Option>西藏</Option>
<Option>河北</Option>
<Option>河南</Option>
<Option>辽宁</Option>
<Option>安徽</Option>
<Option>山西</Option>
<Option>江西</Option>
</select>
sdsddsdsds
sdsdsddsds
sdsd<br />
dssd

<select id="ccc">
<option>dd</option>
<option>dd32</option>
<option>dd44</option>
</select>


<br/><br/><br/><br/><br/><br/><br/>
<select id="bbb">
<option>hello world</option>
<option>hello china</option>
<option>hello bitch</option>
<option>hello woman</option>
</select>
<select id="ttt">
<option>money</option>
<option>love</option>
<option>girl</option>
<option>boy</option>
<option>hell</option>
</select>
<div id="msg">d
</div>
</body>
</html>
<script language="javascript">
/*
author: qiangv
qq: 35771991
email/msn:qiangv@hotmail.com
www.itmancn.com
*/
function GetEvent()
{
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;
}

function getAbsoluteCoords (e) {
var t = e.offsetTop;
var l = e.offsetLeft;
var w = e.offsetWidth;
var h = e.offsetHeight;
while(e = e.offsetParent)
{
t += e.offsetTop;
l += e.offsetLeft;
};

return { top: t, left: l, width: w, height: h, bottom: t + h, right: l + w };
}
function OptionItem(strText, strValue, nOptionIndex)
{
OptionItem.prototype.Active = function(bActive)
{
if(bActive)
{
var item = document.getElementById(this.domInstanceId);
item.style.fontWeight = "bold";
item.style.backgroundColor = "#3366cc";
item = null;
}
else
{
// 若选中状态则返回
if(this.selected)
{
//return;
}
var item = document.getElementById(this.domInstanceId);
item.style.fontWeight = "normal";
item.style.backgroundColor = "#ffffff";
item = null;
}
};
OptionItem.prototype.ScrollIntoView = function(bTop)
{
document.getElementById(this.domInstanceId).scrollIntoView(bTop);
}
OptionItem.prototype.Initialize = function(strText, strValue, nOptionIndex)
{
this.parentInstance = null;
this.selected = false;
this.optionIndex = nOptionIndex;
this.text = strText;
this.value = strValue;
this.domInstanceId = OptionItem.prefixId + OptionItem.index;
OptionItem.index ++;
var divItem = document.createElement("DIV");
divItem.instance = this;
with(divItem)
{
// 设置ID
id = this.domInstanceId;
// 设置text
innerHTML = this.text;
// 设置鼠标样式
style.cursor = "default";
style.fontSize = "13px";
};
divItem.onmouseover = function()
{
// this.style.fontWeight = "bold";
this.instance.OnMouseOver();
};
divItem.onmouseout = function()
{
this.instance.OnMouseOut();
return false;
};
OptionItem.prototype.OnMouseOut = function()
{
this.Active(false);
};
divItem.test = function(evt)
{

};

divItem.onmousedown = function()
{
this.instance.OnMouseDown();
return false;
};

OptionItem.prototype.OnMouseOver = function()
{
this.Active(true);
};

OptionItem.prototype.OnMouseDown = function()
{
this.parentInstance.OnItemClick(this.optionIndex);
};

OptionItem.prototype.Show = function()
{
var domInstance = document.getElementById(this.domInstanceId);
if(domInstance)
{
with(domInstance)
{
style.display = "block";
style.visibility = "visibile";
}
}
};

OptionItem.prototype.Hide = function()
{
var domInstance = document.getElementById(this.domInstanceId);
if(domInstance)
{
with(domInstance)
{
style.display = "none";
style.visibility = "hidden";
}
}
};

OptionItem.prototype.Test = function()
{
return true;
};

OptionItem.prototype.GetDomInstance = function()
{
var domInstance = document.getElementById(this.domInstanceId);
if(domInstance)
{
return domInstance;
}
else
{
return null;
}
};

OptionItem.prototype.SetParentInstance = function(parentInstance)
{
this.parentInstance = parentInstance;
};

// 初始化
document.body.insertBefore(divItem, null);
};

OptionItem.prototype.GetId = function()
{
return this.domInstanceId;
};

this.Initialize(strText, strValue, nOptionIndex);
}
// id 前缀
OptionItem.prefixId = "optionItem";
// 计数
OptionItem.index = 0;
...全文
1572 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengxu_513 2008-09-04
  • 打赏
  • 举报
回复
很不错啊.我很希望还能看到你发的帖子.

mengxu_513 欢迎新人!~~ 专注c#的前沿技术,为更多的c#学习者提供平台!群建设中......... 群号 69386207
yc_8301 2008-09-03
  • 打赏
  • 举报
回复
凑热闹,,顶一下。
MuteG 2008-09-02
  • 打赏
  • 举报
回复
真是好东西啊,学习了
sljsp 2008-07-02
  • 打赏
  • 举报
回复
研究,
JustLovePro 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 49 楼 pzhuyy 的回复:]
试了一下,不错.
[/Quote]
xmycl008 2008-03-31
  • 打赏
  • 举报
回复
顶~多谢LZ
可以加个汉语的首字母进行选择
huanghelang 2008-02-25
  • 打赏
  • 举报
回复
发表于:2008-02-22 15:00:0948楼 得分:0
还可以再加个输入的时候自动提示的功能.


支持这个:)
jianglihuif1 2008-02-22
  • 打赏
  • 举报
回复
向楼主学习了,我学js也的加快脚步了.
pzhuyy 2008-02-22
  • 打赏
  • 举报
回复
试了一下,不错.
pzhuyy 2008-02-22
  • 打赏
  • 举报
回复
还可以再加个输入的时候自动提示的功能.
pzhuyy 2008-02-22
  • 打赏
  • 举报
回复
顶了.
penglewen 2008-01-16
  • 打赏
  • 举报
回复
分享精神可佳,支持一下.
paulin 2008-01-16
  • 打赏
  • 举报
回复
以前没有考虑过,多谢楼主分享,向楼主学习下~~
MinToMin 2008-01-10
  • 打赏
  • 举报
回复
楼主写的好方法 让我慢慢学习,谢谢
LikeCode 2008-01-10
  • 打赏
  • 举报
回复
顶贴接分.
NJUSTMIKE 2008-01-10
  • 打赏
  • 举报
回复
大力全力支持
god_is_man 2008-01-10
  • 打赏
  • 举报
回复
jf
大正他爹 2008-01-10
  • 打赏
  • 举报
回复
支持一下
yaoleshi 2008-01-10
  • 打赏
  • 举报
回复
只为拍砖而来
freshlyg 2008-01-09
  • 打赏
  • 举报
回复
只为拍砖而来
加载更多回复(37)

62,051

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧