一、表单控件之表单

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的更多相关文章

  1. Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)

    单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootst ...

  2. Vue#表单控件绑定

    使用v-model 在表单控件上实现数据双向绑定. 单选:https://jsfiddle.net/miloer/bs49p0fx/ <input type="checkbox&quo ...

  3. 了解HTML表单之13个表单控件

    目录 传统控件 button select option optgroup textarea fieldset legend label 新增控件 datalist keygen output pro ...

  4. wicket基础应用(2)--wicket表单控件的使用

    该文可以转载,但转载必须注明作者,出处: 作者:lhx1026 出处:http://lhx1026.iteye.com/ 这一章介绍wicket表单控件的简单应用 1.Label控件 这个应该说是最常 ...

  5. Bootstrap系列 -- 18. 表单控件大小

    前面看到的表单控件都正常的大小.可以通过设置控件的height,line-height,padding和font-size等属性来实现控件的高度设置.不过Bootstrap框架还提供了两个不同的类名, ...

  6. Vue.js学习 Item9 – 表单控件绑定

    基础用法 可以用 v-model 指令在表单控件元素上创建双向数据绑定.根据控件类型它自动选取正确的方法更新元素.尽管有点神奇,v-model 不过是语法糖,在用户输入事件中更新数据,以及特别处理一些 ...

  7. 我教女朋友学编程Html系列(6)—Html常用表单控件

    做过网页的人都知道,html表单控件十分重要.基本上我们注册会员.登录用户,都需要填写用户名.密码,那些框框都是表单控件. 本来今天就想写一些常用的html表单控件,于是开始搜资料,找到了一个网页,作 ...

  8. CSS3美化表单控件

    表单的默认控件在不同的浏览器中的样式不同,用户体验很差.用CSS3可以实现表单控件的美化,可以提供更好的用户体验.不足之处就是浏览器的兼容性问题. 一.下拉控件 效果图: 下拉控件的布局结构: < ...

  9. Bootstrap_表单_表单控件

    一.输入框input 单行输入框,常见的文本输入框,也就是input的type属性值为text. 在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确 ...

随机推荐

  1. OpenStack虚机相关错误

    OpenStack配置起来还是挺麻烦的,特别是网络那块.虽然官方文档越来越清晰,但有时还是会出各种错.排错主要是看日志.看官方文档和google 以下就一些虚机相关常见的错误做一下总结(基于Iceho ...

  2. Asp.net core与golang web简单对比测试

    最近因为工作需要接触了go语言,又恰好asp.net core发布RC2,就想简单做个对比测试. 下面是测试环境: CPU:E3-1230 v2 内存:16G 电脑有点不给力 操作系统:Centos7 ...

  3. Linux_install jdk

    Linux安装JDK步骤 1.先从网上下载jdk(jdk-7u1-linux-i586.rpm),下载地址:http://www.oracle.com/technetwork/java/javase/ ...

  4. java注解实例-反射生成sql

    定义描述用户表的注解: package dao; import java.lang.annotation.ElementType; import java.lang.annotation.Retent ...

  5. (摘)SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

    Linux下安装好Oracle 10g后运行sqlplus出现故障如下:[oracle@localhost oracle]$ ./sqlplusError 6 initializing SQL*Plu ...

  6. chrome 打不开网页

    右键单击Chrome在桌面的快捷方式,在在但中选择“属性”,在对话框的“目标”项目中追加:-no-sandbox     大家比较熟悉的解决方法有配置 Hosts 文件和使用FQ软件两种,配置 Hos ...

  7. use "man rsyslogd" for details. To run rsyslog interactively, use "rsyslogd -n"to run it in debug mo

    zjtest7-frontend:/root# service rsyslog start Starting system logger: usage: rsyslogd [options] use ...

  8. google开源的C++性能分析工具 - gperftools

    gperftools是Google提供的一套工具,其中的一个功能是CPU profiler,用于分析程序性能,找到程序的性能瓶颈. 安装 gperftools:http://code.google.c ...

  9. 【转】Beagleboard:BeagleBoneBlack

    原文网址:http://elinux.org/Beagleboard:BeagleBoneBlack Did you know that elinux.org has Mailing Lists? P ...

  10. [LeetCode] 61. Rotate List 解题思路

    Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...