关于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值传送给后台,还有复位的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言题库1

1. 用预处理指令#define 声明一个常数&#xff0c;用以表明1年中有多少秒&#xff08;忽略闰年问题&#xff09; #define time (365*24*60*60) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365) 2. 写一个“标准”宏MIN&#xff0c;这个宏输入两个参数并返回较小的一个。 #di…

FreeRTOS系列第19篇---FreeRTOS信号量

来自&#xff1a;http://blog.csdn.net/zhzht19861011/article/details/50835613 本文介绍信号量的基础知识&#xff0c;详细源码分析见《FreeRTOS高级篇6---FreeRTOS信号量分析》 1.信号量简介 FreeRTOS的信号量包括二进制信号量、计数信号量、互斥信号量&#xff08;以后简称…

mysql语法替换字符串

UPDATE ht_business_task SET url REPLACE ( url, &amp;, & )转载于:https://www.cnblogs.com/lz20150121/p/5030739.html

POJ1274 The Perfect Stall(二分图)

题意&#xff1a; 一些奶牛只有在特定的围栏中才能产奶&#xff0c;要求合理安排使能产奶的奶牛数达到最大。 要点&#xff1a; 二分图裸题&#xff0c;最近刚学了二分图&#xff0c;看下面的参考博客&#xff0c;写的比较好&#xff1a; 参考博客&#xff1a;匈牙利算法 15479…

蓝牙HCI剖析(一)

来自&#xff1a;http://blog.csdn.net/xiaoxiaopengbo/article/details/51334257 一.HCI介绍 HCI提供了访问bluetooth control的统一接口&#xff0c;通俗来讲&#xff0c;就是定义了特定的格式来控制蓝牙芯片来做相应的动作&#xff08;比如inquiry,connect,disconnect&#…

c语言题库2

96. struct name1{ char str; short x; int num; } struct name2{ char str;0 1 2 3 int num; 4 5 6 7 short x; 8 9 10 11 } sizeof(struct name1)? sizeof(struct name2)? 8、12 97. 读文件file1.txt的内容&#xff08;例如&#xff09;&#xff1a; 12 34 56 …

ASP.NET状缓存Cache的应用-提高数据库读取速度

ASP.NET状缓存Cache的应用-提高数据库读取速度 原文:ASP.NET状缓存Cache的应用-提高数据库读取速度一、 Cache概述 既然缓存中的数据其实是来自数据库的&#xff0c;那么缓存中的数据如何和数据库进行同步呢&#xff1f;一般来说&#xff0c;缓存中应该存放改动不大或者对…

2016年学习Linux决心书(老男孩教育在线课程班第二期)

我经过这4-5个月的学习后&#xff0c;我一定要达到月薪20&#xff2b;&#xff0c;为了达到这个目标我要付出如下10大行动&#xff1a;1.提前预习上课内容2.上课认真听讲&#xff0c;做好上课笔记3.课后认真做总结&#xff0c;完善笔记5.反复做实验&#xff0c;并写实验文档6.学…

WPF XAML 从零开始认识XAML

来自&#xff1a;http://blog.csdn.net/aoshilang2249/article/details/44158403 剖析最简单的XMAL代码: [html] view plaincopy <Window x:Class"MyFirstApplication.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentati…

c语言题库3

143. 枚举元素本身由系统定义了一个表示序号的数值&#xff0c;从0 开始顺序定义为0&#xff0c;1&#xff0c;2…。如在weekday中&#xff0c;sun值为0&#xff0c;mon值为1&#xff0c; …,sat值为6。 main(){  enum weekday  {   sun,mon,tue,wed,thu,fri,sat  } a,b…

入门级----测试的执行、环境的搭建、每日构建、测试记录和跟踪、回归测试、测试总结和报告...

测试用例的准备&#xff0c;都是为了执行测试准备的。 测试环境的搭建 &#xff08;1&#xff09;测试数据&#xff1a;有些测试需要使用大批量的数据&#xff0c;例如容量测试、压力测试等。根据产品的具体测试要求&#xff0c;可能需要在数据库表插入大量的数据&#xff0c;准…

MFC读取配置文件GetPrivateProfileString

VC中 3 个主要 写入/读取配置文件ini的函数&#xff1a;bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);写入.ini文件&#xff1b;DWORDGetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpD…

UESTC 250 windy数 数位dp

题目链接 1 #include<bits/stdc.h>2 using namespace std;3 #define mem1(a) memset(a, -1, sizeof(a))4 #define ll long long5 int dp[20][20], digit[20], len;6 ll dfs(int len, int pre, bool fp, bool first) { //first表示前面的数是否全部为0&#xff0c; pr…

c语言面试题大全

C语言面试题大汇总 4. static有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1.限制变量的作用域(DL:使其只在定义的当前文件中起作用&#xff0c;static是只能由与变量在同一个文件中定义的程序存取的全局变量。也就是说使全局变量成为文件的私有变量&#…

WindowsAPI详解——GetCurrentDirectory 获得程序当前目录

每个Windows程序都有一个自己的当前目录&#xff0c;默认是程序exe文件所在的目录。系统在给程序加载动态链接库文件(DLL)时先在程序当前目录里查找要加载的DLL&#xff0c;如果在此目录下没有找到系统便会去Windows目录下查找。在这儿我们主要将如何获得程序的当前目录&#x…

20151210小问题2

1、各浏览器下 scrollTop的差异 IE6/7/8&#xff1a; 对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度 &#xff1b; 对于有doctype声明的页面则可以使用 document.documentElement.scrollTop&#xff1b; Safari: safari 比较特别&#x…

限制MySQL Binlog的传输速率

最近一台核心库备库完成恢复后打开slave&#xff0c;导致主库传送binlog&#xff0c;瞬间占满网络&#xff0c;触发故障。 为了做一些限制&#xff0c; 给mysql在发送binlog的函数(mysql_binlog_send)里每隔一段时间sleep一次&#xff0c; 增加了两个参数&#xff1a; master_s…

sprintf用法详解

printf可能是许多程序员在开始学习C语言时接触到的第二个函数&#xff08;我猜第一个是main&#xff09;&#xff0c;说起来&#xff0c;自然是老朋友了&#xff0c;可是&#xff0c;你对这个老朋友了解多吗&#xff1f;你对它的那个孪生兄弟sprintf了解多吗&#xff1f;在将各…

掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求

转http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax&#xff0c;第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 在 Web 请求中使用 XMLHttpRequest 多数 Web 应用程序都使用请求/响应模型从服务器上获得完整的 HTML 页面。常常是点击一个按钮&#xff0…

Provisioning Services 7.8 入门系列教程之十一 通过版本控制自动更新虚拟磁盘

续Provisioning Services 7.8 入门系列教程之十 通过类自动更新虚拟磁盘从前两的两种更新方式可以看出&#xff0c;它们有一个共同的特点&#xff0c;即需要产生&#xff08;复制&#xff09;完成的虚拟磁盘副本&#xff0c;然后进行相关的升级操作。这两种方法在实际生产中&am…