站长论坛
标题:
排序Select中Option项的一个示例
[打印本页]
作者:
webptr
时间:
2007-10-6 09:25
标题:
排序Select中Option项的一个示例
Form中的Select控件不支持对选择项(Option)的排序,下面我将对Option中value属性值进行排序,并调整每个Option排序后的位置,具体代码如下(这里假设每个Option中的value与其中的text内容相同):
该函数运用了Array(数组)对象的排序(sort)方法,实现了Select排序。
function sortMe(oSel){
var ln = oSel.options.length;
var arr = new Array(); // 这是关键部分
// 将select中的所有option的value值将保存在Array中
for (var i = 0; i < ln; i++)
{
// 如果需要对option中的文本排序,可以改为arr
= oSel.options
.text;
arr
= oSel.options
.value;
}
arr.sort(); // 开始排序
// 清空Select中全部Option
while (ln--)
{
oSel.options[ln] = null;
}
// 将排序后的数组重新添加到Select中
for (i = 0; i < arr.length; i++)
{
oSel.add (new Option(arr
, arr
));
}
}
</script>
下面的示例演示了一个按升序排序的select
作者:
webptr
时间:
2007-10-6 09:26
Select的OnChange()事件
我们用Select的onchange事件时,常会遇到这样一个问题,那就是连续选相同一项时,不触发onchange事件.select的onchange事件就是这样子的.你得有Change(改变),才能触发该事件....
掌握了它的特性后,相应的解决办法也很简单.
<select name=sel onchange="bao(this.options[this.options.selectedIndex].value)">
<option value="">请选择
<option value="1">Item 1
<option value="2">Item 2
<option value="3">Item 3
</select>
<script>
function bao(s)
{
txt.value+=s;
//选择后,让第一项被选中,这样,就有Change啦.
document.all.sel.options[0].selected=true;
}
</script>
<textarea id=txt></textarea>
欢迎光临 站长论坛 (http://www.tzlink.com/bbs/)
Powered by Discuz! X3.2