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

时间: 2024-11-05 00:42:02

关于JS获取select值的两种实现方法的相关文章

JavaWeb后台从input表单获取文本值的两种方式

JavaWeb后台从input表单获取文本值的两种方式 #### index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" name="n

js获取url参数值的两种方式

js获取url参数值的方法有很多,下面也为大家介绍两种,喜欢的朋友可以测试下,希望对大家有所帮助 方法一:正则分析法 代码如下: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if

js获取url参数的两种方法

js获取参数,在以前我都是用正在去拆分,然后获取,这种方式感觉是最简单的 方式1: function QueryString(item) { var sValue=location.search.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i")) return sValue?sValue[1]:sValue } //使用方法 //url=http://www.xxx.

js获取url参数值的两种方式详解

有个url如下: http://passport.csdn.net/account/login?from=http%3a%2f%2fwrite.blog.csdn.net%2fpostedit 我们该如何获取from这个参数的值呢?在网上搜了下方法很简单,如下,第一种是通过正则,第二种通过切串放进数组的方式: 方法一: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^

js对象取值的两种方式

var obj = {abc:"ss",nn:90}; var v1 = obj.abc;//使用点的方式 var v2 = obj["abc"];//使用中括号的方式 在实际项目中一般使用点,会方便许多,但是如果key是变量的话就不能使用点了,js会理解变量为对象的key值,造成混淆 1 var v3 = obj[key];//key是一个变量

[jQ/PHP]使用JS数组储值的两种情况(提交PHP处理)

---------------------------------------------------------------------------------------------------- HTML部分: <table> <tr class="active "> <td>排序</td> <td>序号</td> </tr> <?php if($lesson_list):?> <

npm获取配置值的两种方式

命令行标记 在命令行上放置--foo bar设置foo配置参数为bar. 一个 -- 参数(argument)告诉cli解析器停止读取flags.一个 在命令行结尾的--flag参数(parameter)的值将会是true. 环境变量 任何以npm_config_开始的环境变量都会作为配置参数解读.在环境里设置npm_config_foo=bar将会设置foo配置参数为bar.任何没有值的环境配置将会默认为true.配置值是不区分大小写的,所以NPM_CONFIG_FOO=bar的结果一样. 原

js+jquery动态设置/增加/删除/获取元素属性的两种方法集锦对比(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

js获取select标签选中的值及文本

原生js方式: var obj = document.getElementByIdx_x("testSelect"); //定位id var index = obj.selectedIndex; // 选中索引 var text = obj.options[index].text; // 选中文本 var value = obj.options[index].value; // 选中值 jquery方式: 第一种方式$('#testSelect option:selected').te