select下拉菜单 readonly 只读

快乐打工仔 分类:实例代码

select下拉菜单 readonly 只读属于前端实例代码,有关更多实例代码大家可以查看

实际应用中,可能需要将select下拉菜单设置为只读,但它并没有readonly属性。

不过可以模拟实现,下面分享几种方式供需要的朋友参考。

一.将下拉菜单设置为不可用:

也就是将select下拉菜单设置为disabled不可用。

但是缺点非常明显,就是下拉菜单的数据无法被提交。

二.利用脚本固定选中项:

设置为只读就是无法选中其他的项,本方式就是利用脚本固定选中的option。

代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<script> 
window.onload=function(){
  let st=document.getElementById("st");
  st.onfocus=function(){
    this.defaultIndex=this.selectedIndex;
  }
  st.onchange=function(){
    this.selectedIndex=this.defaultIndex;
  }
}
</script> 
</head>
<body>
<select id="st">
  <option>前端教程网一</option>
  <option>前端教程网二</option>
  <option selected>前端教程网三</option>
  <option>前端教程网四</option>
  <option>前端教程网五</option>
</select>
</body>
</html>

上面的代码模拟实现了readonly只读效果。 

二.设置下拉菜单为不可用,将value值写入隐藏框:

将select下拉菜单设置为不可用。

虽然下拉菜单无法提交但是可以将下拉菜单的值赋值给隐藏控件。

代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<script type="text/javascript"> 
window.onload=function(){
  var osel=document.getElementById("sel");
  var ohid=document.getElementById("hid");
  ohid.value=osel.value;
}
</script> 
</head>
<body>
<select id="sel" disabled>
  <option value="0">前端教程网一</option>
  <option value="1">前端教程网二</option>
  <option value="2" selected="selected">前端教程网三</option>
  <option value="3">前端教程网四</option>
  <option value="4">前端教程网五</option>
</select>
<input type="hidden" id="hid"/>
</body>
</html>

上述代码是第一种方式的完善,感觉还是第二种比较好一点。

select下拉菜单 readonly 只读,这样的场景在实际项目中还是用的比较多的,关于select下拉菜单 readonly 只读就介绍到这了。

回复

我来回复
  • 暂无回复内容