我想禁用select下拉框,但是又能传值,该怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想禁用select下拉框,但是又能传值,该怎么办?相关的知识,希望对你有一定的参考价值。

我想做一个修改信息的页面,一开始文本框和下拉框里有初始值,但是不能输入信息,要选中旁边的编辑框之后才能输入。然后把这些信息提交给服务器。不一定每一项都要修改,如果要修改那一项的话只需要点击旁边的编辑框。我以前用disabled,但是传不了值,后来改成readonly,但是对select下拉框不起作用。而且我有个日期的控件,用鼠标点那个文本框就能选择日期的,这个文本框即使设成了readonly还是可以编辑。。。
请问怎么解决这些问题?

参考技术A 下面有个例子!你可以参考,只要把input换成Select就可以达到同样的效果!

如果我的回答你满意,请给分!

<!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">
<style>
divborder: 0 solid #F90;border-width:2px 0; display:none
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload = function()
var price = document.getElementById('price');
price.disabled = true;
price.style.padding = '2px 3px';
price.style.background = '#eee';
price.style.border = '1px solid #ccc';
var tj = document.getElementById('tj');
tj.onclick = function()
if(tj.checked == true) //可编辑
price.disabled = false;
price.style.background = '#fff';
price.style.border = '1px solid #ff7d00';
price.style.padding = '2px 3px';
price.focus();

else
price.disabled = true;
price.style.padding = '2px 3px';
price.style.background = '#eee';
price.style.border = '1px solid #ccc';




</script>
</head>
<body>
<form action="#">
价格:<input type="text" id="price" value="¥12.50">
<input id="tj" hidefocus=true type="checkbox">
修改
</form>
<div>这里不要</div>
</body>
</html>
参考技术B 你在鼠标点那个文本框的时候写个JS,取消下拉框的disabled啊!本回答被提问者采纳

jsp下拉框联动问题

有两个下拉框select1和select2
里面的数据都是从数据库里面读的
现在想实现select1选择改变则select2里面内容也相应改变应该怎么做?

我在网上找到一个js实现的,但select2里面内容已经是静态的了
我想能不能给那个js脚本里传参数让select2里面的内容变成我从数据库里读出的内容?
js实现的页面例子如下:
<html>
<head>
<title>This is a test!</title>
</head>
<body>
<form name="frm">
<select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">
<option selected>请选择</option>
<option value="1">脚本语言</option>
<option value="2">高级语言</option>
<option value="3">其他语言</option>
</select>

<select name="s2">
<option value="请选择" selected>请选择</option>
</select>
</form>
<script language="javascript">
//获取一级菜单长度
var select1_len = document.frm.s1.options.length;
var select2 = new Array(select1_len);
//把一级菜单都设为数组
for (i=0; i<select1_len; i++)
select2[i] = new Array();
//定义基本选项
select2[0][0] = new Option("请选择", " ");

select2[1][0] = new Option("PHP", " ");
select2[1][1] = new Option("ASP", " ");
select2[1][2] = new Option("JSP", " ");

select2[2][0] = new Option("C/C++", " ");
select2[2][1] = new Option("Java", " ");
select2[2][2] = new Option("C#", " ");

select2[3][0] = new Option("Perl", " ");
select2[3][1] = new Option("Ruby", " ");
select2[3][2] = new Option("Python", " ");
//联动函数
function redirec(x)

var temp = document.frm.s2;
for (i=0;i<select2[x].length;i++)
temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
temp.options[0].selected=true;

</script>
</body>
</html>
ps:我目前只会基本的jsp.

简单一点儿的实现,不用ajax.
你的两个下拉框里面的数据很少,可以在网页生成的时候直接从数据库读出,以数组的形式生成字符串,拼进javascript里面。如: [["js","vbs"],["vb","java"]];根据第一个下拉框选择的内容确定数组索引,把相应索引动态添加到第二个下拉框中。
参考技术A 到我空间去看看“Ajax动态生成下拉菜单“文档,里面有详细介绍如何使用... 参考技术B 简单的做法jsp+js
基本思路:首先在点击第一个select时候加事件onchange,onchange事件主要作用是与后台进行ajax交互取得你所需要的第二个select值,然后在页面用js写html标签将第二个select插入相应位置即可。
做法:
1.上网研究ajax
2.上网研究用js如何创建html标签
以上如能研究透彻,思路即可异常清晰明了。
代码先就暂时不提供了,这几天忙的蛋疼。
参考技术C AJAX 参考技术D AJAX一定要学习!

以上是关于我想禁用select下拉框,但是又能传值,该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

js 设定下拉框的值默认被选中,下拉框做条件查询时,实现分页的时候带参数传值,下拉框默认被选中,求解!

请js高手帮忙看下,我想用select那个下拉按钮,但是点击的时候不想让它出现下拉框,怎么搞?

select 下拉框 不可选

表单中select组件怎么使用

如何重写angularJs的下拉框,做到带查找筛选功能的select下拉框

饿了么ui下拉框禁用