js使用DOM设置单选按钮、复选框及下拉菜单的方法


Posted in Javascript onJanuary 20, 2015

本文实例讲述了js使用DOM设置单选按钮、复选框及下拉菜单的方法。分享给大家供大家参考。具体实现方法如下:

1.设置单选按钮

单选按钮在表单中即<input type="radio" />它是一组供用户选择的对象,但每次只能选一个。每一个都有checked属性,当一项选择为ture时,其它的都变为false.

先贴上一个例子:

<script type="text/javascript">

    function getChoice() {

 var oForm = document.forms["uForm1"];

 var aChoices = oForm.camera;

 for (i = 0; i < aChoices.length; i++) //遍历整个单选项表

     if (aChoices[i].checked) //如果发现了被选中项则退出

  break;

 alert("相机品牌是:" + aChoices[i].value);

    }
    function setChoice(iNum) {

 var oForm = document.forms["uForm1"];

 oForm.camera[iNum].checked = true;

    }

</script>

<form method="post" name="uForm1" action="addInfo.aspx">

    相机品牌:

    <p>

 <input type="radio" name="camera" id="canon" value="Canon">

 <label for="canon">Canon</label>

    </p>

    <p>

 <input type="radio" name="camera" id="nikon" value="Nikon">

 <label for="nikon">Nikon</label>

    </p>

    <p>

 <input type="radio" name="camera" id="sony" value="Sony" checked>

 <label for="sony">Sony</label>

    </p>

    <p>

 <input type="radio" name="camera" id="olympus" value="Olympus">

 <label for="olympus">Olympus</label>

    </p>

    <p>

 <input type="radio" name="camera" id="samsung" value="Samsung">

 <label for="samsung">Samsung</label>

    </p>

    <p>

 <input type="radio" name="camera" id="pentax" value="Pentax">

 <label for="pentax">Pentax</label>

    </p>

    <p>

 <input type="radio" name="camera" id="others" value="其它">

 <label for="others">others</label>

    </p>

    <p>

 <input type="submit" name="btnSubmit" id="btnSubmit" value="Submit" class="btn">

    </p>

    <p>

 <input type="button" value="检测选中对象" onclick="getChoice();">

 <input type="button" value="设置为Canon" onclick="setChoice(0);">

    </p>

</form>

单选按钮在表单中即<input type="radio" />它是一组供用户选择的对象,但每次只能选一个。每一个都有checked属性,当一项选择为ture时,其它的都变为false.
从以上代码中看出,id和name是不同的,一组单选按钮中它们的name是相同的,只有一个被选中。id则是绑定<label>或者其它选择作用的。

其中代码中:检查被选中对象的代码是(当某一项的chcked值为ture时,遍历结束)

var oForm = document.forms["uForm1"];

var aChoices = oForm.camera;

for (i = 0; i < aChoices.length; i++) //遍历整个单选项表

    if (aChoices[i].checked) //如果发现了被选中项则退出

 break;

alert("相机品牌是:" + aChoices[i].value);

2.设置多选框

与单选按钮不同,复选框<input type="checkbox" />可以同时选中多个选项进行处理,邮箱中每条邮件之前的复选框就的典型的运用

<script type="text/javascript">

    function checkbox() {

 var str = document.getElementsByName("hobby");

 var objarray = str.length;

 var chestr = "";

 

 for (j = 0; j < objarray; j++) {

     if (str[j].checked == true) {

  chestr += str[j].value + ",";

     }

 }

 if (chestr == "") {

     alert("请先选择一个爱好~!");

 } else {

     alert("您先择的是:" + chestr);

 }

    }
    function changeBoxes(action) {

 var oForm = document.forms["myForm1"];

 var oCheckBox = oForm.hobby;        

 for (var i = 0; i < oCheckBox.length; i++) //遍历每一个选项

     if (action < 0) //反选

  oCheckBox[i].checked = !oCheckBox[i].checked;

     else //action为1是则全选,为0时则全不选

  oCheckBox[i].checked = action;

    }

</script>
<form method="post" name="myForm1" action="addInfo.aspx">

    喜欢做的事:

    <p>

 <input type="checkbox" name="hobby" id="ball" value="ball">

 <label for="ball">打球</label>

    </p>

    <p>

 <input type="checkbox" name="hobby" id="TV" value="TV">

 <label for="TV">看电视</label>

    </p>

    <p>

 <input type="checkbox" name="hobby" id="net" value="net">

 <label for="net">上网</label>

    </p>

    <p>

 <input type="checkbox" name="hobby" id="book" value="book">

 <label for="book">看书</label>

    </p>

    <p>

 <input type="checkbox" name="hobby" id="trip" value="trip">

 <label for="trip">旅游</label>

    </p>

    <p>

 <input type="checkbox" name="hobby" id="music" value="music">

 <label for="music">音乐</label>

    </p>

    <p>

 <input type="checkbox" name="hobby" id="others" value="其它">

 <label for="others">其它</label>

    </p>

    <p>

 <input type="button" value="全选" onclick="changeBoxes(1);" />

 <input type="button" value="全不选" onclick="changeBoxes(0);" />

 <input type="button" value="反选" onclick="changeBoxes(-1);" />

 <input type="button" value="提交"  onclick="checkbox()" />

    </p>

</form>

复选框原理利用checked属性布尔值进行确定,全选和不全选可以采用0和1的方式传递参数。

3.下拉菜单

下拉菜单<select>是比较常用的表单元素。当它的下拉为单选时,和单选按钮<input type="radio" />功能一样,当下拉菜单为多选时multiple="multiple时,功能相当复选框,但所占面积远小于复选框。

下拉菜单的常用属性:

属性 说明
length 表示选项
selected 布尔值,表示
SelectedIndex 被选中选项的序列号,如果没有选项被选中则为-1,对于多选下拉菜单而言,返回第一个被选中 的序号,从0开始计数
text 选项的文本
value 选项的值
type 下拉菜单的类型,单选返回select-one,多选返回select-multiple
options 获取选项的数组 ,例如:oSelectBox.options[2],表示下拉菜单oSelectBox第三项
  
①. 下拉菜单获取单选值
<script language="javascript">

    function checkSingle() {

 var oForm = document.forms["myForm1"];

 var oSelectBox = oForm.constellation;

 var iChoice = oSelectBox.selectedIndex; //获取选中项

 alert("您选中了" + oSelectBox.options[iChoice].text);

    }

</script>
<form method="post" name="myForm1">

    <label for="constellation">星座:</label>

    <p>

 <select id="constellation" name="constellation" >

     <option value="Aries" selected="selected">白羊</option>

     <option value="Taurus">金牛</option>

     <option value="Gemini">双子</option>

     <option value="Cancer">巨蟹</option>

     <option value="Leo">狮子</option>

     <option value="Virgo">处女</option>

     <option value="Libra">天秤</option>

     <option value="Scorpio">天蝎</option>

     <option value="Sagittarius">射手</option>

     <option value="Capricorn">摩羯</option>

     <option value="Aquarius">水瓶</option>

     <option value="Pisces">双鱼</option>

 </select>

    </p>

    <input type="button" onclick="checkSingle()" value="查看选项" />

</form>

②. 下拉菜单为多选时,取值

<script type="text/javascript">

    function checkMultiple() {

 var oForm = document.forms["myForm1"];

 var oSelectBox = oForm.constellation;

 var aChoices = new Array();

 //遍历整个下拉菜单

 for (var i = 0; i < oSelectBox.options.length; i++)

     if (oSelectBox.options[i].selected) //如果被选中

  aChoices.push(oSelectBox.options[i].text); //压入到数组中

 alert("您选了:" + aChoices.join()); //输出结果

    }

</script>
<form method="post" name="myForm1">

 <label for="constellation">星座:</label>

 <p>

     <select id="constellation" name="constellation" multiple="multiple" style="height:180px;">

  <option value="Aries">白羊</option>

  <option value="Taurus">金牛</option>

  <option value="Gemini">双子</option>

  <option value="Cancer">巨蟹</option>

  <option value="Leo">狮子</option>

  <option value="Virgo">处女</option>

  <option value="Libra">天秤</option>

  <option value="Scorpio">天蝎</option>

  <option value="Sagittarius">射手</option>

  <option value="Capricorn">摩羯</option>

  <option value="Aquarius">水瓶</option>

  <option value="Pisces">双鱼</option>

     </select>

 </p>

 <input type="button" onclick="checkMultiple()" value="查看选项" />

</form>

③. 通用取值(下拉单选和多选的情况)

<script language="javascript">

    function getSelectValue(Box) {

 var oForm = document.forms["myForm1"];

 var oSelectBox = oForm.elements[Box]; //根据参数相应的选择下拉菜单

 if (oSelectBox.type == "select-one") { //判断是单选还是多选

     var iChoice = oSelectBox.selectedIndex; //获取选中项

     alert("单选,您选中了" + oSelectBox.options[iChoice].text);

 } else {

     var aChoices = new Array();

     //遍历整个下拉菜单

     for (var i = 0; i < oSelectBox.options.length; i++)

  if (oSelectBox.options[i].selected) //如果被选中

      aChoices.push(oSelectBox.options[i].text); //压入到数组中

     alert("多选,您选了:" + aChoices.join()); //输出结果

 }

    }

</script>
<form method="post" name="myForm1">

    星座:

    <p>

 <select id="constellation1" name="constellation1">

     <option value="Aries" selected="selected">白羊</option>

     <option value="Taurus">金牛</option>

     <option value="Gemini">双子</option>

     <option value="Cancer">巨蟹</option>

     <option value="Leo">狮子</option>

     <option value="Virgo">处女</option>

     <option value="Libra">天秤</option>

     <option value="Scorpio">天蝎</option>

     <option value="Sagittarius">射手</option>

     <option value="Capricorn">摩羯</option>

     <option value="Aquarius">水瓶</option>

     <option value="Pisces">双鱼</option>

 </select>

 <input type="button" onclick="getSelectValue('constellation1')" value="查看选项" />

    </p>

    <p>

 <select id="constellation2" name="constellation2" multiple="multiple" style="height:120px;">

     <option value="Aries">白羊</option>

     <option value="Taurus">金牛</option>

     <option value="Gemini">双子</option>

     <option value="Cancer">巨蟹</option>

     <option value="Leo">狮子</option>

     <option value="Virgo">处女</option>

     <option value="Libra">天秤</option>

     <option value="Scorpio">天蝎</option>

     <option value="Sagittarius">射手</option>

     <option value="Capricorn">摩羯</option>

     <option value="Aquarius">水瓶</option>

     <option value="Pisces">双鱼</option>

 </select>

 <input type="button" onclick="getSelectValue('constellation2')" value="查看选项" />

    </p>

</form>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
Jquery常用技巧收集整理篇
Nov 14 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
Jquery实现仿腾讯微博发表广播
Nov 17 Javascript
Bootstrap树形组件jqTree的简单封装
Jan 25 Javascript
js实现的简单图片浮动效果完整实例
May 10 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
JS开发自己的类库实例分析
Aug 28 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 Javascript
DOM基础教程之事件对象
Jan 20 #Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 #Javascript
js实现的捐赠管理完整实例
Jan 20 #Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 #Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 #Javascript
DOM基础教程之使用DOM + Css
Jan 20 #Javascript
jquery+ajax实现跨域请求的方法
Jan 20 #Javascript
You might like
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP的栏目导航程序
2006/10/09 PHP
php header示例代码(推荐)
2010/09/08 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
python实现维吉尼亚加密法
2019/03/20 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
详解python如何引用包package
2020/06/07 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
餐饮采购员岗位职责
2014/03/15 职场文书
保险公司早会主持词
2014/03/22 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
四则混合运算教学反思
2016/02/23 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
Pandas 数据编码的十种方法
2022/04/20 Python
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js