select下拉列表!使其不可改变!并且可以得到默认值

时间:2023-01-21 15:04:16
用JS代码
disabled不行啊!用disabled获得不到默认值
求解答啊!项目赶时间啊!

30 个解决方案

#1


<script>
function foo(obj){
      obj.selectedIndex=0;
}
</script>
<form action='f.php' method='post'>
<select name='key' id='key' onchange='foo(this)'>
<option value=0>All</option>
<option value=1>aa</option>
<option value=2>bb</option>
<option value=3>cc</option>
</select>
<input type='submit'>
</form>

或者就用disabled禁用掉,将select框的默认值放入一个隐藏域中,再提交。

#2


引用 1 楼 jordan102 的回复:
XML/HTML code?



1234567891011121314

<script> function foo(obj){       obj.selectedIndex=0; } </script> <form action='f.php' method='post'> <select name='key' id='key' onchange='foo(this)'> <o……



这个是 onchange事件后还原的不是初始值啊!而是默认值啊!!!!!

#3


既然不让选中,又有默认值,用input标签不行吗 

#4


不是一样的道理? 你想让哪个为默认值,就选中哪个就行了。

#5


引用 4 楼 jordan102 的回复:
不是一样的道理? 你想让哪个为默认值,就选中哪个就行了。


第几个是随机的 是从另一个界面获取的!

如何可以得到默认值啊?

#6


如果要让它不可选,只能用DISABLE,把值赋值给一个隐藏域再取值吧

#7


引用 3 楼 dongvsning 的回复:
既然不让选中,又有默认值,用input标签不行吗

主要是这个界面的下拉列表 是很多个页面跳转过来的!这个下拉列表客户不能更改!其他的可以更改!并且这个是客户要求的..............
我是新手!

#8


引用 6 楼 suano 的回复:
如果要让它不可选,只能用DISABLE,把值赋值给一个隐藏域再取值吧

不能用disabled

#9


<select name='key' id='key' disabled="disabled"> 
<option value=0>All</option> 
<option value=1>aa</option> 
<option value="2" selected="selected">bb</option> 
<option value=3>cc</option> 
</select> 
<script type="text/javascript">
alert(document.getElementById('key').value)
</script>


这样会取不到值????

#10


既然是跳转过来的,你总知道是选中哪个吧。要学会变通。

PS: 到现在还没看到你贴出半点代码。瞎猜是不能解决问题的。

#11


我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled 

#12


引用 11 楼 bing546874133 的回复:
我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled

我在9楼写的,不就是:使其不可改变,并且可以得到默认值。再加上上面说的什么“其他的选项不显示”其他的用了disabled,其他的本来就看不到了呀

表示不明白你想表达的意思

#13


引用 11 楼 bing546874133 的回复:
我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled


按你自己的需求,你写个例子出来说明你的问题。你这前后矛盾的,谁也搞不明白

#14


仿一个select,另一个hidden来存这个值

#15



页面只显示默认值的select,在后台输出时,都只输出默认项,其它的不输出


页面select 设置disabled,另生成一个关联的hidden,设置值为默认值


绑定onchange,onfocus事件, 不得焦点,不响应change事件

#16


<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        function getValue(){
            alert("第1个select的值:"+document.getElementById('select1').value);
            alert("第2个select的值:"+document.getElementById('select2').value);
        }
    </script>
</head>
<body>
<div>
    <div style="border:solid 1px green;" >
        第1种:按原意,不过客户可能还是会有点误会的(能够动,为什么修改不了?)<br />
        <select id="select1" onfocus="this.defaultIndex=this.selectedIndex;" onchange="this.selectedIndex=this.defaultIndex;">  
            <option value="1">test1</option>  
            <option value="2">test2</option>  
            <option value="3" selected="selected">test3</option>  
            <option value="4">test4</option>  
            <option value="5">test5</option>  
        </select>  
    </div>
    <div style="border:solid 1px red;" >
        第2种:在加载完span和select时,将select2的值给span<br />
        <span id="spanSelect2" ></span>
        <select id="select2" style="display:none;" >  
            <option value="1">test1</option>  
            <option value="2">test2</option>  
            <option value="3" selected="selected">test3</option>  
            <option value="4">test4</option>  
            <option value="5">test5</option>  
        </select>
        <script type="text/javascript">
            //在加载完span和select时,将select2的值给span
            var select2 = document.getElementById("select2");
            var txt = select2.options[select2.selectedIndex].text;
            document.getElementById("spanSelect2").innerHTML = txt;
        </script>
    </div>
    <input type="button" onclick="getValue()" value="取得值" />
</div>
</body>
</html>


两种方法,看着办吧。

#17


用个浮动层盖住select不给操作就行了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<span style="position:relative">
<select><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>
<div style="position:absolute;width:100%;height:100%;left:0px;top:0px;background:#fff;opacity:0;filter:alpha(opacity=0)">&nbsp;</div>
</span>

#18


引用 13 楼 crying_boy 的回复:
引用 11 楼 bing546874133 的回复:
我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled

按你自己的需求,你写个例子出来说明你的问题。你这前后矛盾的,谁也搞不明白

我的意思是 单击下拉列表时  没有其他的option 只有一个默认的!

我页面全都是用readonly 你一个下拉列表编程 disabled能好看么!?????
还有 页面原有的readonly不能改变样子!所以我说不能用disabled

#19


引用 17 楼 showbo 的回复:
用个浮动层盖住select不给操作就行了


学习了, select下拉列表!使其不可改变!并且可以得到默认值

#20


<html>
<body>
<select >  
  <option>1</option>  
  <option selected>2</option>  
  <option>3</option>  
  <option>4</option> 
  <option>5</option> 
  </select>  
</bodu>
</html>

只显示2 并且不可点击1 3 4 5 

#21


引用 15 楼 danica7773 的回复:

页面只显示默认值的select,在后台输出时,都只输出默认项,其它的不输出


页面select 设置disabled,另生成一个关联的hidden,设置值为默认值


绑定onchange,onfocus事件, 不得焦点,不响应change事件


如何绑定onchange,onfocus事件,不得焦点,不响应change事件

#22


修改DOM结构行不行。
给select分配个ID,根据其它界面传来的值在body onLoad事件时动态Remove select的Child,然后把仅剩的Child设定selected属性,这样用户页面的下拉框里就只有一个值了。

#23


不明白楼主为什么不愿意看17楼. 

17楼与15楼相结合,就是非常完美的了。

下面的代码,在17楼加上了一个 onfocus="this.blur();", 防止客户用键盘来修改值。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<span style="position:relative">
<select  onfocus="this.blur();"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>
<div style="position:absolute;width:100%;height:100%;left:0px;top:0px;background:#fff;opacity:0;filter:alpha(opacity=0)">&nbsp;</div>
</span>

#24


select下拉列表!使其不可改变!并且可以得到默认值

#25


默认值又不会变,你预先存起来就好了。然后弄一个只有一个<option>的<select>就好了啊,不明白楼主为什么这么纠结。

#26


ewftw select下拉列表!使其不可改变!并且可以得到默认值

#27


disabled可以,不过得把select的值放到隐藏表单里面

#28


禁用了。用户看着不能选。
忽悠用户啊?

既然不能先,是定值。为什么不用 span input 这些标签

#29


变态的需求!

<html>
<body>
<select >  
  <option disabled>1</option>  
  <option selected>2</option>  
  <option disabled>3</option>  
  <option disabled>4</option> 
  <option disabled>5</option> 
  </select>  
</body>
</html>

#30


引用 9 楼 crying_boy 的回复:
XML/HTML code?123456789<select name='key' id='key' disabled="disabled"> <option value=0>All</option> <option value=1>aa</option> <option value="2" selected="selected">bb</option> <option ……


在Action里面获取会报空指针异常

#1


<script>
function foo(obj){
      obj.selectedIndex=0;
}
</script>
<form action='f.php' method='post'>
<select name='key' id='key' onchange='foo(this)'>
<option value=0>All</option>
<option value=1>aa</option>
<option value=2>bb</option>
<option value=3>cc</option>
</select>
<input type='submit'>
</form>

或者就用disabled禁用掉,将select框的默认值放入一个隐藏域中,再提交。

#2


引用 1 楼 jordan102 的回复:
XML/HTML code?



1234567891011121314

<script> function foo(obj){       obj.selectedIndex=0; } </script> <form action='f.php' method='post'> <select name='key' id='key' onchange='foo(this)'> <o……



这个是 onchange事件后还原的不是初始值啊!而是默认值啊!!!!!

#3


既然不让选中,又有默认值,用input标签不行吗 

#4


不是一样的道理? 你想让哪个为默认值,就选中哪个就行了。

#5


引用 4 楼 jordan102 的回复:
不是一样的道理? 你想让哪个为默认值,就选中哪个就行了。


第几个是随机的 是从另一个界面获取的!

如何可以得到默认值啊?

#6


如果要让它不可选,只能用DISABLE,把值赋值给一个隐藏域再取值吧

#7


引用 3 楼 dongvsning 的回复:
既然不让选中,又有默认值,用input标签不行吗

主要是这个界面的下拉列表 是很多个页面跳转过来的!这个下拉列表客户不能更改!其他的可以更改!并且这个是客户要求的..............
我是新手!

#8


引用 6 楼 suano 的回复:
如果要让它不可选,只能用DISABLE,把值赋值给一个隐藏域再取值吧

不能用disabled

#9


<select name='key' id='key' disabled="disabled"> 
<option value=0>All</option> 
<option value=1>aa</option> 
<option value="2" selected="selected">bb</option> 
<option value=3>cc</option> 
</select> 
<script type="text/javascript">
alert(document.getElementById('key').value)
</script>


这样会取不到值????

#10


既然是跳转过来的,你总知道是选中哪个吧。要学会变通。

PS: 到现在还没看到你贴出半点代码。瞎猜是不能解决问题的。

#11


我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled 

#12


引用 11 楼 bing546874133 的回复:
我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled

我在9楼写的,不就是:使其不可改变,并且可以得到默认值。再加上上面说的什么“其他的选项不显示”其他的用了disabled,其他的本来就看不到了呀

表示不明白你想表达的意思

#13


引用 11 楼 bing546874133 的回复:
我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled


按你自己的需求,你写个例子出来说明你的问题。你这前后矛盾的,谁也搞不明白

#14


仿一个select,另一个hidden来存这个值

#15



页面只显示默认值的select,在后台输出时,都只输出默认项,其它的不输出


页面select 设置disabled,另生成一个关联的hidden,设置值为默认值


绑定onchange,onfocus事件, 不得焦点,不响应change事件

#16


<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        function getValue(){
            alert("第1个select的值:"+document.getElementById('select1').value);
            alert("第2个select的值:"+document.getElementById('select2').value);
        }
    </script>
</head>
<body>
<div>
    <div style="border:solid 1px green;" >
        第1种:按原意,不过客户可能还是会有点误会的(能够动,为什么修改不了?)<br />
        <select id="select1" onfocus="this.defaultIndex=this.selectedIndex;" onchange="this.selectedIndex=this.defaultIndex;">  
            <option value="1">test1</option>  
            <option value="2">test2</option>  
            <option value="3" selected="selected">test3</option>  
            <option value="4">test4</option>  
            <option value="5">test5</option>  
        </select>  
    </div>
    <div style="border:solid 1px red;" >
        第2种:在加载完span和select时,将select2的值给span<br />
        <span id="spanSelect2" ></span>
        <select id="select2" style="display:none;" >  
            <option value="1">test1</option>  
            <option value="2">test2</option>  
            <option value="3" selected="selected">test3</option>  
            <option value="4">test4</option>  
            <option value="5">test5</option>  
        </select>
        <script type="text/javascript">
            //在加载完span和select时,将select2的值给span
            var select2 = document.getElementById("select2");
            var txt = select2.options[select2.selectedIndex].text;
            document.getElementById("spanSelect2").innerHTML = txt;
        </script>
    </div>
    <input type="button" onclick="getValue()" value="取得值" />
</div>
</body>
</html>


两种方法,看着办吧。

#17


用个浮动层盖住select不给操作就行了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<span style="position:relative">
<select><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>
<div style="position:absolute;width:100%;height:100%;left:0px;top:0px;background:#fff;opacity:0;filter:alpha(opacity=0)">&nbsp;</div>
</span>

#18


引用 13 楼 crying_boy 的回复:
引用 11 楼 bing546874133 的回复:
我就是想让下拉列表除了默认值以外 其他的选项不显示!不能用disabled

按你自己的需求,你写个例子出来说明你的问题。你这前后矛盾的,谁也搞不明白

我的意思是 单击下拉列表时  没有其他的option 只有一个默认的!

我页面全都是用readonly 你一个下拉列表编程 disabled能好看么!?????
还有 页面原有的readonly不能改变样子!所以我说不能用disabled

#19


引用 17 楼 showbo 的回复:
用个浮动层盖住select不给操作就行了


学习了, select下拉列表!使其不可改变!并且可以得到默认值

#20


<html>
<body>
<select >  
  <option>1</option>  
  <option selected>2</option>  
  <option>3</option>  
  <option>4</option> 
  <option>5</option> 
  </select>  
</bodu>
</html>

只显示2 并且不可点击1 3 4 5 

#21


引用 15 楼 danica7773 的回复:

页面只显示默认值的select,在后台输出时,都只输出默认项,其它的不输出


页面select 设置disabled,另生成一个关联的hidden,设置值为默认值


绑定onchange,onfocus事件, 不得焦点,不响应change事件


如何绑定onchange,onfocus事件,不得焦点,不响应change事件

#22


修改DOM结构行不行。
给select分配个ID,根据其它界面传来的值在body onLoad事件时动态Remove select的Child,然后把仅剩的Child设定selected属性,这样用户页面的下拉框里就只有一个值了。

#23


不明白楼主为什么不愿意看17楼. 

17楼与15楼相结合,就是非常完美的了。

下面的代码,在17楼加上了一个 onfocus="this.blur();", 防止客户用键盘来修改值。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<span style="position:relative">
<select  onfocus="this.blur();"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>
<div style="position:absolute;width:100%;height:100%;left:0px;top:0px;background:#fff;opacity:0;filter:alpha(opacity=0)">&nbsp;</div>
</span>

#24


select下拉列表!使其不可改变!并且可以得到默认值

#25


默认值又不会变,你预先存起来就好了。然后弄一个只有一个<option>的<select>就好了啊,不明白楼主为什么这么纠结。

#26


ewftw select下拉列表!使其不可改变!并且可以得到默认值

#27


disabled可以,不过得把select的值放到隐藏表单里面

#28


禁用了。用户看着不能选。
忽悠用户啊?

既然不能先,是定值。为什么不用 span input 这些标签

#29


变态的需求!

<html>
<body>
<select >  
  <option disabled>1</option>  
  <option selected>2</option>  
  <option disabled>3</option>  
  <option disabled>4</option> 
  <option disabled>5</option> 
  </select>  
</body>
</html>

#30


引用 9 楼 crying_boy 的回复:
XML/HTML code?123456789<select name='key' id='key' disabled="disabled"> <option value=0>All</option> <option value=1>aa</option> <option value="2" selected="selected">bb</option> <option ……


在Action里面获取会报空指针异常