返回列表 发新帖

html中select标签单选多选用法详解

570.0k 7
swmozowtfl 发表于 2015-7-10 22:29:19|湖北 | 查看全部 阅读模式
select 元素可创建单选或多选菜单。当提交表单时,浏览器会提交选定的项目,或者收集用逗号分隔的多个选项,将其合成一个单独的参数列表,并且在将 <select> 表单数据提交给服务器时包括 name 属性。
1 v* E: e. ^2 {* u! X/ B* g一、基本用法:- s  [6 k+ `, m9 ~3 Z5 w6 V
代码如下:
0 t1 c& R# _0 s; V% H/ {9 `
<select>* x: ]' s* f. p" W9 a4 v
<option value =volvo>volvo</option>) W: B6 I" \5 l: Z! ~3 F6 n, V
<option value =saab>saab</option>
+ R; S# a* {2 ]8 y<option value=opel>opel</option>
( N! D2 R) I4 F9 a<option value=audi>audi</option>& ^- D" G3 _) w
</select>
" v4 `* M  R" o$ i# ]% {, \其中,</option>标签可以省掉,在页面中用法
& q6 c1 ^* n% P4 Y7 y/ o代码如下:
" r. D2 n- v/ a- T" C
<select name=studycenter id=studycenter size=1>; s9 O/ O* Y* k9 y. K$ h8 x: b+ @
<option value=0>全部6 s. Q) C0 h- z# P. P6 o
<option value=1>湖北电大网络学习中心. `' k; q2 w/ {8 [$ z1 U
<option value=2>成都师范学院网络学习中心
% u( @2 ~8 L0 Q# p/ l% W1 |2 R<option value=3>武汉职业技术学院网络学习中心
  e: x; ], ~1 j" u9 |$ N. c</select>; m  E4 {* g& U% X
二、select元素还可以多选,看如下代码:& L& i6 l4 ^# ^6 [, \5 d# R
代码如下:
" G" p: g  H. W
//有multiple属性,则可以多选7 h( d4 N( Q5 j0 T6 J
<select name= “education” id=”education” multiple=”multiple”>
' M7 [$ `- @; _, m: z: t. Y<option value=”1”>高中</option>
* c' R; T" X% D5 b& E' o0 S# n<option value=”2”>大学</option>7 y4 m/ ]9 G& A: k6 {
<option value=”3”>博士</option>
) q% H# O' ~: h9 ]</select>0 v5 f3 u! N6 Z/ `+ K2 \; R
//下面没有multiple属性 , 只显示一条,不能多选
' `* y' w# q) b8 T! v<select name= “education” id=”education” >
* E  z( B3 _: ~- I' W<option value=”1”>高中</option>1 F; `1 ~. d& t: [2 W/ n: L0 k+ _
<option value=”2”>大学</option>6 \  r. K; O) Z/ N
<option value=”3”>博士</option>/ r# i- k! U" E4 O- S4 k4 x- j: b
</select>% G2 q$ z" J- D+ R" ?* l
//下面是设置了size属性的情况 , 如果size = 3 那么就显示三条数据,注意不能多选的。. R. \9 H* p( n
<select name=education id=education size='3'>
$ h2 g; x  @$ d5 I. @% Z<option value=0>小学</option>3 `" m* l, r/ ?! V
<option value=1>初中</option>
3 G/ x6 Z# ^  M  \* b* @<option value=2>高中</option>/ }% A/ g5 G% \" ]4 v7 \
<option value=3>中专</option>3 r% ~3 z7 c2 K- O7 N, J
<option value=4>大专</option>( F3 X7 e3 f% H# ]  r) P
<option value=5>本科</option>( t; Q5 M0 i5 @! x2 o$ b  Y
<option value=6>研究生</option>. [! W8 K+ M$ ?' V" l, L% ~$ ~
<option value=7>博士</option>/ U" ?2 E1 e" I
<option value=8>博士后</option>* I2 Q1 Q( q* E# l
<option selected>请选择</option>
" w. ~6 k6 n& J9 i+ S1 F: W</select>* R7 P# A' e# w& o7 ^. U- q
三、多选select组件涉及的所有常用操作:
' P) p' J( ]! W: B6 {) l9 m1. 判断select选项中是否存在指定值的item3 V  c( y) a% D. e0 z7 L- U
代码如下:
1 k+ N* {" H) }7 @3 b
@param objselectid 将要验证的目标select组件的id( n+ F+ ]4 P6 T4 ?8 R, h% ~& x
@param objitemvalue 将要验证是否存在的值
' ]5 {- q! l3 _2 n% E8 S+ j" Xfunction isselectitemexit(objselectid,objitemvalue) {  L; V3 `8 b" ~  i, F/ ]
var objselect = document.getelementbyid(objselectid);
" q+ x6 G! X5 k* Zvar isexit = false;
# v8 F4 u' b* [5 Wif (null != objselect && typeof(objselect) != undefined) {
! ~  g) _  L/ d& q/ O3 gfor(var i=0;i<objselect.options.length;i++) {
. D7 T$ m, {4 f; |( uif(objselect.options.value == objitemvalue) {
" T( h& x2 \0 F% B' O( ?isexit = true;3 J. n, \. S3 E+ n6 l0 L
break;
& p9 e! ^/ {5 r2 ~* q0 o$ C- z}4 u$ X5 ^9 V! \  W! a/ T
}
1 T/ C  z7 f1 e8 V}  q3 c2 W" \6 }) ~) B( s/ d
return isexit;
8 ]  `0 U3 T8 i& Y" B- l% j}
( T( s" A! o- M1 f2.向select选项中加入一个item
' X1 K1 O. N: S% ?! h4 P/ n代码如下:, \1 c) X0 M  ?7 q
@param objselectid 将要加入item的目标select组件的id
3 Z7 H% `  n1 c2 v' z0 x( q: `; \@param objitemtext 将要加入的item显示的内容
* Q5 f+ x2 k/ K1 N- Q7 j9 r' D@param objitemvalue 将要加入的item的值" g6 c6 n# i; l# |: o6 f$ d
function addoneitemtoselect(objselectid,objitemtext,objitemvalue) {
4 \: m2 R7 ~7 rvar objselect = document.getelementbyid(objselectid);
3 H$ h) ]1 x4 S" P- g7 O* bif (null != objselect && typeof(objselect) != undefined) {
" |* ]+ F1 q' }+ b" N1 A" t//判断是否该值的item已经在select中存在1 z& Z% W( A$ [# \! V: D% ~
if(isselectitemexit(objselectid,objitemvalue)) {
' z; O2 }5 Z+ m. V, p$.messager.alert('提示消息','该值的选项已经存在!','info');; N8 \/ I" L  ?+ X1 O+ d. v; @# h
} else {5 v# J* y0 T& ~+ T0 L( o
var varitem = new option(objitemtext,objitemvalue);. T# z2 `/ u- h4 M/ m# M+ K' a
objselect.options.add(varitem);
) \6 \. ?9 {0 [6 _9 l0 e4 f" }7 ]}
5 x8 x7 ?! \* X) V}$ u1 ~. ?/ G% Z) m8 u1 y2 Q+ O+ c
}1 d$ I4 J- G( I3 T7 M* x% P  u
3.从select选项中删除选中的项,支持多选多删- w! s8 e* @! `- J; \1 s
代码如下:
6 a* N/ f+ Z# u' V
@param objselectid 将要进行删除的目标select组件id, v" K2 e1 b; y9 o
function removeselectitemsfromselect(objselectid) {
% R" m; I$ G4 Svar objselect = document.getelementbyid(objselectid);
& s7 z7 p  K0 i  b% f  A& f4 avar delnum = 0;: V' L2 Q* A" \# X5 f. z  a' l6 }/ Q
if (null != objselect && typeof(objselect) != undefined) {
/ {# a" @. x- v9 _; C5 rfor(var i=0;i<objselect.options.length;i=i+1) {2 Z3 w8 k& Z8 {2 `; D) V
if(objselect.options.selected) {1 M2 a) C' _, ^& D! u) t' N) t
objselect.options.remove(i);
5 R1 @  i4 S, ^6 R3 Y8 udelnum = delnum + 1;
- \( n' n) @  ^3 M( mi = i - 1;
# e: n$ m# ~) L  |$ x' W}; k6 p6 ?* I' I, I
}0 X2 H/ N, Q: K
if (delnum <= 0 ) {" j1 W6 X$ x  c6 M) H3 e0 i' q4 Q
$.messager.alert('提示消息','请选择你要删除的选项!','info');
3 U" u+ d: @, B) ]9 Q3 [( W- K} else {
7 F1 `( ?' X9 d  m" O5 V. Y/ e1 @$ l$.messager.alert('提示消息','成功删除了'+delnum+'个选项!','info');; X7 K- G% S& t6 N
}
- U/ T# {) [; d# ^}
% `* O! D6 b5 \$ |}
- [& }9 [5 H2 b% _; g- W) o& K- i) P# y! @4.从select选项中按指定的值删除一个item
3 p1 O6 e; k5 Y! Q: I代码如下:) H$ Y9 K% U+ z. X
@param objselectid 将要验证的目标select组件的id: c& w$ R% g6 q/ e9 ^
@param objitemvalue 将要验证是否存在的值
$ e$ J% ~) j' ]) E* ]9 Lfunction removeitemfromselectbyitemvalue(objselectid,objitemvalue) {
2 U& o  j. o+ Q0 x8 Xvar objselect = document.getelementbyid(objselectid);
8 _2 H' B4 Y. _* Nif (null != objselect && typeof(objselect) != undefined) {3 a- i% N  ]& @5 x- G: ?  A6 I
//判断是否存在& J5 w  S4 F6 ?' K
if(isselectitemexit(objselect,objitemvalue)) {
/ q1 w8 h- f* E9 f$ C7 l6 e( ifor(var i=0;i<objselect.options.length;i++) {
: P( f7 x4 x8 b, ^if(objselect.options.value == objitemvalue) {
! v6 o9 o& T! n( E' |6 Wobjselect.options.remove(i);; N3 N* \# p8 i6 O" j( Z
break;" `8 U- q1 d+ P8 H$ E/ c+ D& X
}. _6 ^; o" w* q: k% R: ^! N6 W: ^
}
, c3 L4 @+ }6 w$ m! D& @# {$.messager.alert('提示消息','成功删除!','info');
; _  u1 R* |+ t& s3 f8 a  E0 U# F} else {
9 P2 X% A  [- A5 }# o$ w; k2 S" B+ {$.messager.alert('提示消息','不存在指定值的选项!','info');
1 E4 ?- P1 S$ C# N! [1 I6 Y7 U}& f# n7 U9 W) A1 f7 i
}, R% Y# |+ x. |1 D: p
}2 l$ q4 C; `6 x5 I; u6 e, n- X" w
5.清空select中的所有选项
& A2 `' g- j( ^: F- g代码如下:
7 a; @8 n9 }2 ^1 Z/ D0 C# f8 s
@param objselectid 将要进行清空的目标select组件id
( O8 J3 N7 z1 ^( u: n& D: gfunction clearselect(objselectid) {/ d4 M" \6 C( n1 g, r
var objselect = document.getelementbyid(objselectid);
5 P2 O  M( r, c2 Z0 O2 R+ Gif (null != objselect && typeof(objselect) != undefined) {
, `$ I" k  r- V( m; J4 p% ffor(var i=0;i<objselect.options.length;) {
! N% _  u; q! ]6 pobjselect.options.remove(i);9 N& `8 e9 T# J# @# `3 ^9 o
}
: y9 v' B: F- _7 U( ~}& q" @  {0 b4 H( w. v" }
}
+ j# a1 A& t9 a" k3 z6. 获取select中的所有item,并且组装所有的值为一个字符串,值与值之间用逗号隔开
: {( z. k- |# g5 T2 F3 J代码如下:
( E4 R, e& _1 D2 H
@param objselectid 目标select组件id
# x5 c5 t" F" _+ r@return select中所有item的值,值与值之间用逗号隔开
9 q& `4 `$ ]* Efunction getallitemvaluesbystring(objselectid) {
) m6 q: z8 @; C* Fvar selectitemsvaluesstr = ;
: |( }2 B2 @, W' y, l  S3 Gvar objselect = document.getelementbyid(objselectid);
/ U/ `8 ^' o0 F9 L( [- H5 q( Dif (null != objselect && typeof(objselect) != undefined) {* o/ Q+ L. _9 W, K
var length = objselect.options.length' L7 r9 k1 G/ d' l7 y" ~
for(var i = 0; i < length; i = i + 1) {( T& _( c" I8 R  d, i* {; l8 _$ Z9 ~( W
if (0 == i) {7 C# w0 }( v2 H! h
selectitemsvaluesstr = objselect.options.value;/ j& [7 l  t+ ]7 v, ]& C, C% I
} else {
1 J  }: v. H9 ?1 d' \$ o4 h$ eselectitemsvaluesstr = selectitemsvaluesstr + , + objselect.options.value;
1 x: q& c5 S5 A# ^}
  E3 i- J0 I' [; B; T}' c. w8 r* `( J- Z$ D+ _9 ?
}
7 h- B% u5 l8 l2 y- i! A2 |2 b$ y, `return selectitemsvaluesstr;: K/ {! O$ d" x( _& m; L
}9 b6 W8 }4 P2 m6 @# r% t
7. 将一个select中的所有选中的选项移到另一个select中去
% v; \: M, N4 ?# K" K' r代码如下:0 z$ S% ?" m& J2 E+ Z
@param fromobjselectid 移动item的原select组件id
/ g3 B: a3 }5 j- j" N@param toobjectselectid 移动item将要进入的目标select组件id
5 X6 r9 C# t9 |function moveallselectedtoanotherselectobject(fromobjselectid, toobjectselectid) {# J% \7 Q+ P$ K! e7 Q* y
var objselect = document.getelementbyid(fromobjselectid);
2 ?& A  {; \! i5 Q3 Evar delnum = 0;( p  `, X0 I" k' T9 @' p
if (null != objselect && typeof(objselect) != undefined) {% c9 t+ E2 q# o. b! p1 x# Y1 I1 a
for(var i=0;i<objselect.options.length;i=i+1) {8 `4 X' m6 X2 u' \
if(objselect.options.selected) {* |3 [/ o  Y# a3 j; K8 l
addoneitemtoselect(toobjectselectid,objselect.options.text,objselect.options.value)
$ ^9 L. @& t6 tobjselect.options.remove(i);
# p# A: ~5 O: }% f1 [2 Oi = i - 1;. N. o. X% |; Y5 ~# a2 @
}2 O8 }! F! o8 V- C
}4 u) }: E/ b9 K. u1 L# B( I- H
}6 u/ J+ t0 J$ ?5 m6 }2 J% H
}3 k- c* H+ N9 {: C; {) p  g
8. 将一个select中的所有选项移到另一个select中去) n  W0 J; q: \' P2 C3 G
代码如下:: i& K/ I8 ~/ L0 t9 r/ v6 v3 E: O
@param fromobjselectid 移动item的原select组件id
1 h" R4 P! D% }) f! Z; t@param toobjectselectid 移动item将要进入的目标select组件id
5 T2 y4 t- P9 E" v1 `" H% rfunction movealltoanotherselectobject(fromobjselectid, toobjectselectid) {! o1 O2 P. y8 M" Z
var objselect = document.getelementbyid(fromobjselectid);
1 S/ |9 m4 y5 W1 Dif (null != objselect) {
; [( @' q" w5 @( Zfor(var i=0;i<objselect.options.length;i=i+1) {
  v( z0 S. r9 h- ]addoneitemtoselect(toobjectselectid,objselect.options.text,objselect.options.value)
# L5 m4 o& U" l" M7 W1 s2 P+ o9 s, bobjselect.options.remove(i);3 \, ]. `. Y4 D% A2 G# d/ {1 e
i = i - 1;" z9 x$ X7 z0 M$ v& @' ^6 t
}
. [2 }9 e$ j( N5 ?3 C# W2 }, {/ a- C}
) w' y% N4 \4 F}
# g  L% g$ Z9 f; O
; |; A) p: o% s9 B更多网页制作信息请查看: 网页制作

回复|共 7 个

seazvyt 发表于 2016-3-22 22:28:34|意大利 | 查看全部
下次有人骂我了...我给他还回去..
mwxny 发表于 2016-3-22 22:28:58|内网 | 查看全部
我不是来抢沙发的,也不是来打酱油的。
wwdu926a 发表于 2016-3-23 18:46:39|美国 | 查看全部
你该这么说~~
seazvyt 发表于 2016-3-23 18:47:01|美国 | 查看全部
哦~~~明白了....
mwxny 发表于 2016-3-23 18:47:19|加拿大 | 查看全部
还没崇拜过谁呢,满足一下愿望吧,谢谢!
Mqokjdvq 发表于 2016-3-23 18:47:42|巴西 | 查看全部
我是来收集资料滴...
Mqokjdvq 发表于 2016-3-23 18:48:07|美国 | 查看全部
今天统计好像出了问题

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表