web开发(脚本和动态语言) 编辑 下拉列表 select控件 可编辑

<html>
<head>
<title> Select控件可编辑 </title>
<script>
function sltChg(o){
 if(o.options[o.selectedIndex].text == "新增..."){
  var newObj = document.createElement("<input type='text' style='width:100px' name='"+o.name+"'>")
  newObj.ondblclick = function(){  //双击回到select控件状态
   var selectObj = genSelectObject(o.name);
   this.insertAdjacentElement("afterEnd",selectObj);
   this.parentNode.removeChild(this);
  }
  o.insertAdjacentElement("afterEnd",newObj);
  o.parentNode.removeChild(o);
  newObj.focus();
 }
}
function genSelectObject(strName){
 //此处可采取更灵活的方式写
 //如可采用xmlhttp从后台传回。这样可实现select控件的实时更新,将新增项目增加进select的option
 var obj = document.createElement("<select name='"+strName+"'>");
 obj.style.width = "100px";
 obj.onchange = function(){sltChg(this);};
 var opt = new Option("","");
 obj.add(opt);
 opt = new Option("甲乙丙","1");
 obj.add(opt);
 opt = new Option("ABC","2");
 obj.add(opt);
 opt = new Option("一二三","3");
 obj.add(opt);
 opt = new Option("新增...","")  //选择此项进入input控件状态
 obj.add(opt);
 return obj;
}
</script>
</head>

<body>
<table border="1">
 <tr><td width="100px">
  <select name="slt" style="width:100px" οnchange="sltChg(this)">
  <option></option>
  <option value="1">甲乙丙</option>
  <option value="2">ABC</option>
  <option value="3">一二三</option>
  <option>新增...</option>
  </select>
 </td><td width="100px">
  <select name="slt" style="width:100px" οnchange="sltChg(this)">
  <option></option>
  <option value="1">甲乙丙</option>
  <option value="2">ABC</option>
  <option value="3">一二三</option>
  <option>新增...</option>
  </select>
 </td></tr>
</table>
</body>
</html>

拷贝后直接运行可见效果。不支持FF 

不能绑定数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值