想要实现的功能:当鼠标点击select时,改变select中的option内容。
请教问题:当第一次点击select时会有个闪动的过程(就是展开再收缩),需点第二次才能正常显示,请教一下如果写法才能让第一次就是展示正常呢?
代码如下:
<select name="a" onFocus="CreateOptions(this)">
<option value="0"> </option>
<option value="1">a1</option>
<option value="2">a2</option>
</select><script>
function CreateOptions(obj){
var v = "选项一,选项二,选项三,选项四,选项五,选项六,选项七,选项八";
var arr = v.split(","); for(var i=obj.options.length;i>0;i--){
obj.options.remove(i);
}
for(var i=0;i<arr.length;i++){
obj.options.add(new Option(arr[i],(i+1)));
}
}
</script>
请教问题:当第一次点击select时会有个闪动的过程(就是展开再收缩),需点第二次才能正常显示,请教一下如果写法才能让第一次就是展示正常呢?
代码如下:
<select name="a" onFocus="CreateOptions(this)">
<option value="0"> </option>
<option value="1">a1</option>
<option value="2">a2</option>
</select><script>
function CreateOptions(obj){
var v = "选项一,选项二,选项三,选项四,选项五,选项六,选项七,选项八";
var arr = v.split(","); for(var i=obj.options.length;i>0;i--){
obj.options.remove(i);
}
for(var i=0;i<arr.length;i++){
obj.options.add(new Option(arr[i],(i+1)));
}
}
</script>
解决方案 »
- 跪求大神:extjs中button提交事件
- 怎样确定用户已选该框<input type="checkbox" name="agreement">我同意论坛注册协议</input>
- 如何知道收件人邮件里是否成功显示我所发送的图片?
- extjs tree图标
- javascript的一个语法问题
- 关于window.creatPopup的问题,请高手指点
- ie ff 下的event问题
- 怎么能让鼠标放到tabbar的tab上就显示该tab的信息?
- 如何动态控制 显示格式
- 怎么样求一个打开窗口的宽度
- EXTJS2.0,项目中增加一个简单需求,新加一个下拉框选中数据后显示在原有的文本域中
- 如何获取某个A标记外层的DIV,控制此DIV
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY onload="CreateOptions()">
<select id="s1" name="a" >
<option value="0"> </option>
<option value="1">a1</option>
<option value="2">a2</option>
</select><script>
function CreateOptions(){
var obj=document.getElementById("s1");
var v = "选项一,选项二,选项三,选项四,选项五,选项六,选项七,选项八";
var arr = v.split(",");for(var i=obj.options.length;i>0;i--){
obj.options.remove(i);
}for(var i=0;i<arr.length;i++){
obj.options.add(new Option(arr[i],(i+1)));
}
}
</script>
</BODY>
</HTML>
你的select是被触发的,是别的动作使其内容变化,你事件应该加在触发他的元素身上。
如果不知道是被哪个触发的,那就是空,直到某个事件触发其内容变化,再去改变,而不是直接一进来,select就自己要改变自己~~
我看了省市联动的,它是通过选市去改变市的数据的,这个问题,现在就是这个改变数据的时机问题。
这样每次点击一下响应一下数据
就可以保证数据的更新!~
<option value="0"> </option>
<option value="1">广东省</option>
<option value="2">河北省</option>
</select> 市:<select name="b" onfocus="CreateOptions(this)">
<option value="0"> </option>
</select><script>
function CreateOptions(obj){
var v = "广州市,惠州市";
if(document.getElementById("a").options[document.getElementById("a").selectedIndex].value==2)
v = "沧州市,衡水市";
var arr = v.split(","); for(var i=obj.options.length;i>0;i--){
obj.options.remove(i);
}
for(var i=0;i<arr.length;i++){
obj.options.add(new Option(arr[i],(i+1)));
}
}
</script>
选省时不先改变市里的数据,要在市聚焦或点击鼠标时改变其数据,聚焦应该没问题,就点击时有第一次的冷却。
如果是在选省的时候直接就改变了市的数据也不会有问题。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<select name="a" id="a" onchange="CreateOptions(this)">
<option value="1">广东省</option>
<option value="2">河北省</option>
</select> 市:<select name="b" id="b">
<option value="0"> </option>
</select><script>
function CreateOptions(o){
var v = "广州市,惠州市";
if(document.getElementById("a").options[document.getElementById("a").selectedIndex].value==2)
v = "沧州市,衡水市";
var arr = v.split(",");
var obj=document.getElementById("b");
obj.options.length=0;
for(var i=0;i<arr.length;i++){
obj.options.add(new Option(arr[i],(i+1)));
}
}CreateOptions();
</script>
</body>
</html>
<script>
function CreateOptions(obj){
var v = "选项一,选项二,选项三,选项四,选项五,选项六,选项七,选项八";
var arr = v.split(","); for(var i=obj.options.length;i>0;i--){
obj.remove(i);
} for(var i=0;i<arr.length;i++){
obj.options[i] = new Option(arr[i],(i+1));
}
}
</script>
<div onmuouseOver = "createOption"> <select> <option></option> </select></div>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function CreateOptions() {
var obj = document.getElementById("s1").options.length;
var v = "选项一,选项二,选项三,选项四,选项五,选项六,选项七,选项八";
var arr = v.split(","); for(var i = obj; i > 0; i--){
obj.options.remove(i);
} for(var i = 0;i < arr.length; i++){
obj.options.add(new Option(arr[i],(i+1)));
}
}
//-->
</SCRIPT>
</HEAD><BODY>
<select id="s1" name="a" >
<option value="0"> </option>
<option value="1">a1</option>
<option value="2">a2</option>
</select></BODY>
</HTML>