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 节点排序 2
Jan 31 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
PHP 数组current和next用法分享
Mar 05 Javascript
JavaScript中的函数嵌套使用
Jun 04 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
Feb 21 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
基于vue-element组件实现音乐播放器功能
May 06 Javascript
微信小程序实现蒙版弹窗效果
Nov 01 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
Nov 28 Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 Javascript
vue 兄弟组件的信息传递的方法实例详解
Aug 30 Javascript
JavaScript代码模拟鼠标自动点击事件示例
Aug 07 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
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
Display SQL Server Version Information
2007/06/21 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python语言快速上手学习方法
2018/12/14 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
办公自动化专业大学生职业规划书
2014/03/06 职场文书
安全生产目标责任书
2014/04/14 职场文书
运动会稿件100字
2014/09/24 职场文书
大连星海广场导游词
2015/02/10 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电