一、表单控件之表单

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. CallableStatement执行存储过程

    /** * 使用CablleStatement调用存储过程 * @author APPle * */ public class Demo1 { /** * 调用带有输入参数的存储过程 * CALL p ...

  2. hibernate3 无法查询中文问题

    在查询中文时  hql语句在生成的语句中把中文显示为乱码 则在hibernate配置文件中加入: <property name="hibernate.query.factory_cla ...

  3. Notepad++ Java开发环境配置

    1. 安装JDK 下载JDK 6下载 http://developers.sun.com.cn/download/java_se.html 运行安装程序,按照屏幕提示完成JDK 6的安装,下面为安装路 ...

  4. The 500 Most Commonly Used Words in the English Language

    Based on the combined results of British English, American English and Australian English surveys of ...

  5. android上传图片至服务器

    本实例实现了android上传手机图片至服务器,服务器进行保存 服务器servlet代码publicvoid doPost(HttpServletRequest request, HttpServle ...

  6. JavaScript 比较操作符,严格比较===

    JavaScript 有两种比较方式:严格比较运算符和转换类型比较运算符.对于严格比较运算符(三个 =)来说,为ture的情况是仅当两个操作数拥有相同的类型,而对于被广泛使用的比较运算符(两个 =)来 ...

  7. FlashPaper组件——api

    属性摘要 属性 说明 documentPath:String FlashPaper文件的路径. borderThickness:Number 边框宽度. borderColor:String 边框颜色 ...

  8. 用nginx做代理服务器上网

    用nginx做代理服务器上网 目前现状:只有1个机器能上网(web),其他机器不能方法:能上网的做一个代理web服务器中转,其他机器连接它即可.采用nginx Nginx配置如下: server{   ...

  9. HDU_2057——64位无符号16进制数的运算

    Problem Description There must be many A + B problems in our HDOJ , now a new one is coming. Give yo ...

  10. BZOJ1176---[Balkan2007]Mokia (CDQ分治 + 树状数组)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1176 CDQ第一题,warush了好久.. CDQ分治推荐论文: 1 <从<C ...