关于JS获取select值的两种实现方法
前几天发了一篇关于javascript获取select值的方法,后来发现有另一种实现方法,所以就都发出来比较一下:
方法一:通过获取option标签的value值来确定:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>select</title>
</head>
<body>
<form id="form1" name="form1">
<select id="s1" name="s1" onChange="printTest();">
<option selected="selected" value="0" >选项一</option>
<option value="1">选项二</option>
<option value="2">选项三</option>
</select>
<input type="submit" value="button"/>
</form>
<script type="text/javascript">
function printTest() {
var oSelect = document.getElementById('s1');
var ind = oSelect.value;
var val = oSelect.value;
var tex = oSelect.options[oSelect.value].text;
alert('ind = ' + ind + '\nval = ' + val + '\ntext = ' + tex);
}
</script>
</body>
</html>
这个方法需要为每个option标签定义一个value,而且value的值应为“0 1 2…”这样排序。
方法二:用javascript原装的selectIndex属性实现:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>select</title>
</head>
<body>
<form id="form1" name="form1">
<select id="s1" name="s1" onChange="printTest();">
<option selected="selected" value="1" >选项一</option>
<option value="2">选项二</option>
<option value="3">选项三</option>
</select>
<input type="submit" value="button"/>
</form>
<script type="text/javascript">
function printTest() {
var oSelect = document.getElementById('s1');
var ind = oSelect.selectedIndex;
var val = oSelect.options[oSelect.selectedIndex].value;
var tex = oSelect.options[oSelect.selectedIndex].text;
alert('ind = ' + ind + '\nval = ' + val + '\ntext = ' + tex);
}
</script>
</body>
</html>
这种方法就相对比较简单,也不需要设置value值了。
然后再说下如何实现自定义select样式,实现这个样式我认为需要实现4点功能:
1.select的效果,就是点击右边按钮打开下拉框,点击下拉框内容或右边按钮或页面其他位置会收回下拉框;
2.模拟select里的select属性不要用到value值的,这里可以考虑用 li 标签的index属性来代替;
3.模拟select选中某项时会记录该项value值,可以结合第二点把value值放在变量里;
4.模拟form表单里提交时会把select当前选中的option标签的value值传送给后台,还有复位的功能。
关于JS获取select值的两种实现方法的更多相关文章
- JavaWeb后台从input表单获取文本值的两种方式
JavaWeb后台从input表单获取文本值的两种方式 #### index.html <!DOCTYPE html> <html lang="en"> & ...
- js获取url参数值的两种方式
js获取url参数值的方法有很多,下面也为大家介绍两种. 方法一:正则分析法 function getQueryString(name) { var reg = new RegExp(" ...
- drupal7 覆写node-type.tpl.php获取字段值的两种方式
字段的机读名称为:field_publication_date <!-- 下面两种方式都可以获取node字段的值--> 出版时间: <?php print date('Y-m-d', ...
- js获取url参数的两种方法
js获取参数,在以前我都是用正在去拆分,然后获取,这种方式感觉是最简单的 方式1: function QueryString(item) { var sValue=location.search.ma ...
- Selenium获取input值的两种方法:WebElement.getAttribute("value")和WebElement.getText()
在页面元素的定位中,有时候需要获取到元素的页面显示值,用来作为断言.例如,我需要获取email的值"amy1111@xxx.com". <input class=" ...
- js获取对象属性的两种方法,object.属性名,[‘属性名’ ]
1.通过点的方式 2.通过括号的方式 例: <input type="text" value="hello" id="text"/&g ...
- [jQ/PHP]使用JS数组储值的两种情况(提交PHP处理)
---------------------------------------------------------------------------------------------------- ...
- npm获取配置值的两种方式
命令行标记 在命令行上放置--foo bar设置foo配置参数为bar. 一个 -- 参数(argument)告诉cli解析器停止读取flags.一个 在命令行结尾的--flag参数(paramete ...
- js对象取值的两种方式
:"李四"}; var v1 = obj.name1; //张三, 使用点的方式 //报错,不能使用点的方式 ]; //李四,使用中括号的方式 var key = "na ...
随机推荐
- 【Effective Java】1、静态工厂的方式代替构造函数
使用一个服提供者对进行服务的提供,服务的请求通过不同的提供者提供不同的服务,服务提供者首先必须在工厂中进行注册,然后才可以通过工厂实例化服务 Service.java package cn.xf.cp ...
- .NET Core的“dotnet restore”、“dotnet build”和“dotnet run”命令都是用来干什么的?
dotnet restore 源代码:https://github.com/dotnet/cli/tree/rel/1.0.0/src/dotnet/commands/dotnet-restore 入 ...
- 原型 prototype
原型 prototype js 的对象比较 由于 js 是解释执行的语言, 那么再代码中出现函数与对象如果重复执行, 会创建多个副本 在代码中重复执行的代码容易出现重复的对象 创建一个 Person ...
- 【使用 DOM】使用事件
1. 使用简单事件处理器 可以用几种不同的方式处理事件.最直接的方式是用事件属性创建一个简单事件处理器(simple event handler).元素为它们支持的每一种事件都定义了一个事件属性.举个 ...
- 读书笔记2014第3本:Visual Studio程序员箴言
Visual Studio 2010是我经常使用的程序开发工具,也知道VS中有大量的快捷键可以帮助提高效率,可惜就是不愿意记忆,最近在学vim的时候快速把<Visual Studio程序员箴言& ...
- Android中方便好用的倒计时类
一.使用api提供的类进行操作 Android提供了CountDownTimer来让我们进行倒计时,可以让我们很方便的进行倒计时的操作.使用方式也很简单,下面直接贴代码就好了: package ...
- 基础学习day10--异常、包
一.异常 1.1.异常定义 异常:--不正常,程序在运行时出现不正常情况 异常由来:其实也是现实生活中一个具体的事物,马可以通过JAVA的类的形式表现描述,并封装成类. Java对不正常情况描述后的, ...
- MySQL学习基础 之 起航篇
MySQL 学习来自慕课网<与MySQL的零距离接触> MySQL是一个开源的关系型数据库管理系统 MySQL分为社区版和企业版 MySQL登录和退出相关的命令 参数 描述 -D,--da ...
- Finder增强插件XtraFinder
关于在Mac上安装XtraFinder插件,现在因为Mac更新到10.11, Mac OS X 10.11(El Capitan)默认开启了 SIP(System Integrity Protecti ...
- Mac OS X 10.10 Yosemite下面解决XAMPP无法开启mysql的问题
首次使用XAMPP但是却遇到一个MySQL无法启动的缘故,不知道怎么解决,经过百度 找到解决方案: 在xampp安装目录下找到xamp这个文件(默认路径是:/Applications/XAMPP/xa ...