表单控件之select
一、表单控件之表单
1、依次获取表单里的所有控件:
for (i = 0; i < document.getElementById("formName").length; i++) {
var ob = document.getElementById(formName).elements[i];
if(ob.value=='') //......
}
2、获取某个控件:
document.getElementById("formName").elements['elementNameOrInputId'];
3、获取某组控件:
如需要知道一组radio或checkbox中的勾选情况:
<form>
<input type="checkbox" name="coffee" value="奶油">奶油<br />
<input type="checkbox" name="coffee" value="糖块">糖块<br />
<input type="checkbox" name="coffee" value="白兰地">白兰地<br />
</form>
利用相同的name:
coffee=document.forms[0].coffee
for (i=0;i<coffee.length;++ i)
{ if (coffee[i].checked) { //......}}
4、表单元素有disabled和readonly之分:
- disabled的项目不会提交;
- readonly的项目会提交;
二、表单控件之select
1、可以通过设置下拉框的高度和字体来控制下拉框的大小和选项的字体大小,
select{height:30px;font-size:20px;}有效,设置option{height:30px;font-size:20px;}则无效
(即option的高度总是select字体的大小,而select的高度则可以与字体大小无关),但background和color则对二者都有效,

(截图来自chrome,在IE8中第二个select中字体是底部对齐的,即使设置:select{vertical-align:middle;}也无效)我觉得原因是对select和option分别设置背景颜色和字体颜色不会互相干扰,而对二者设置高度和字体大小无法达到统一。
2、不仅可以设置下拉框不可用,还可以设置某个选项不可用/选:
$('#option1').attr('disabled',true); 或 document.getElementById('option1').disabled=true;
3、为下拉框添加新选项:添加到末尾:
$("#select1").append("<option value='11'>11</option>");
4、获取选中项的选中索引、文本、值、option个数:
var index = obj.selectedIndex; 或 $(".selector option:selected").index(); // 获取选中索引
var text = obj.options[index].text; 或 $(".selector option:selected").text(); // 获取选中文本
var value = obj.options[index].value; 或 $('select').val(); // 获取选中值
var count= obj.options.length; 或 $(".selector option").length; // 获取option个数
5、设置选中项的选中索引、值、文本:
obj.selectedIndex=2; 或 obj.options[i].selected=true;
或 $('select option:eq(2)').attr("selected",true); //设置选中索引
推荐 $(".selector").val("v"); 而非 $('select option[value='+v+']').attr("selected",true);
//设置选中值
$(".selector").find("option[text='文本']").attr("selected",true);
//设置选中文本
注:对于可以多重选择的<select id='select1' multiple> selectedIndex和value都只代表第一个选中项,必须用for遍历
6、select下拉框只支持disabled属性,不支持readOnly属性(因为select本身就是只读的),设置readOnly是无效的,radio也是如此。为了能够提交,可以使select不设置disabled, 但是让用户无法改变select 的选中项.
setSelectReadOnly(document.getElementById("select1"));
function setSelectReadOnly(obj){
if(obj){
obj.style.color = 'gray';
var beginIndex=obj.selectedIndex;
obj.onclick=function(){obj.selectedIndex=beginIndex;}
}
7、多个select级联:
如第二个下拉框选项根据第一个下拉框的选中项的不同而不同
$(".selector1").change(function(){
$(".selector2").empty();// 先清空第二个
var option = $("<option>").val(1).text("pxx");// 根据实际情况(循环)生成多个选项
$(".selector2").append(option);}
表单控件之select的更多相关文章
- Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)
单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootst ...
- Vue#表单控件绑定
使用v-model 在表单控件上实现数据双向绑定. 单选:https://jsfiddle.net/miloer/bs49p0fx/ <input type="checkbox&quo ...
- 了解HTML表单之13个表单控件
目录 传统控件 button select option optgroup textarea fieldset legend label 新增控件 datalist keygen output pro ...
- wicket基础应用(2)--wicket表单控件的使用
该文可以转载,但转载必须注明作者,出处: 作者:lhx1026 出处:http://lhx1026.iteye.com/ 这一章介绍wicket表单控件的简单应用 1.Label控件 这个应该说是最常 ...
- Bootstrap系列 -- 18. 表单控件大小
前面看到的表单控件都正常的大小.可以通过设置控件的height,line-height,padding和font-size等属性来实现控件的高度设置.不过Bootstrap框架还提供了两个不同的类名, ...
- Vue.js学习 Item9 – 表单控件绑定
基础用法 可以用 v-model 指令在表单控件元素上创建双向数据绑定.根据控件类型它自动选取正确的方法更新元素.尽管有点神奇,v-model 不过是语法糖,在用户输入事件中更新数据,以及特别处理一些 ...
- 我教女朋友学编程Html系列(6)—Html常用表单控件
做过网页的人都知道,html表单控件十分重要.基本上我们注册会员.登录用户,都需要填写用户名.密码,那些框框都是表单控件. 本来今天就想写一些常用的html表单控件,于是开始搜资料,找到了一个网页,作 ...
- CSS3美化表单控件
表单的默认控件在不同的浏览器中的样式不同,用户体验很差.用CSS3可以实现表单控件的美化,可以提供更好的用户体验.不足之处就是浏览器的兼容性问题. 一.下拉控件 效果图: 下拉控件的布局结构: < ...
- Bootstrap_表单_表单控件
一.输入框input 单行输入框,常见的文本输入框,也就是input的type属性值为text. 在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确 ...
随机推荐
- 信息安全实验四:information-security
title: authentication date: 2016-01-13 14:33:22 categories: information-security tags: authenticatio ...
- 转:内核中的内存申请:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages
在内核模块中申请分配内存需要使用内核中的专用API:kmalloc.vmalloc.kzalloc.kcalloc.get_free_pages;当然,设备驱动程序也不例外;对于提供了MMU功能的处理 ...
- .net performance
http://msdn.microsoft.com/en-us/library/ms173196.aspx http://www.zhihu.com/question/20314377 http:// ...
- iOS 9之WatchKit for WatchOS 2
金田(github示例源码) 自AppleWatch发行的同时就可以为AppWatch开发相应的应用程序,不过最初的版本,能开发的功能极为有限,所以也只是有少数的App厂商为Apple定制了App,所 ...
- hdu5136:组合计数、dp
题目大意: 求直径长度为N的无根二叉树的个数(同构的只算一种) 分析: 分析发现直径长度不好处理!因此考虑把问题转化一下: 假设要求直径为N的二叉树 (1) 若N为偶数,将树从直径中点的边断开,则分成 ...
- Myeclipse自动生成javabean的get和set方法
用Myeclipse开发java web程序,写javabean的时候,如果字段很多的话,写get和set方法是一件很无语和浪费时间的事情,所以Myeclipse提供了一个自动生成这些方法的功能. 首 ...
- final(最终、修饰符)
/* final(最终.修饰符) final关键字的用法: 1. final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的. 2. fianl关键字修饰一个引用类型变量时,该变 ...
- 白话C#:特性(转)
不管怎么样,转过来再说. http://www.kuqin.com/dotnet/20080628/10196.html 系列文章索引:<白话C#> 首先要说的是,可能一些刚接触C#的朋友 ...
- Chrome真机调试步骤
确保手机端打开USB调试选项 手机安装chrome 手机访问网页(或者打开APP,或者使用夜深模拟器打开APP或者网页) PC chrome打开chrome://inspect/#devices 点击 ...
- 判断IE版本的HTML语句详解<!--[if IE]> <![endif]--> - AnswerCard
一个页面里面只能有一句这样的判断 我们常常会在网页的HTML里面看到形如[if lte IE 9]……[endif]的代码,表示的是限定某些浏览器版本才能执行的语句,那么这些判断语句的规则是什么呢?请 ...