前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >下拉菜单11+原生js获取select下拉框的selected的option项

下拉菜单11+原生js获取select下拉框的selected的option项

作者头像
用户3519280
发布2023-07-08 10:41:46
6050
发布2023-07-08 10:41:46
举报
文章被收录于专栏:c++ 学习分享c++ 学习分享
代码语言:javascript
复制
对于以下select标签,获取当前选择的值得方式如下:

<select id="test" name="">
<option value="1">text1</option>
<option value="2">text2</option>
</select>
code:
一:javascript原生的方法
1:拿到select对象: var myselect=document.getElementById("test");
2:拿到选中项的索引:var index=myselect.selectedIndex ; // selectedIndex代表的是你所选中项的index
3:拿到选中项options的value: myselect.options[index].value;
4:拿到选中项options的text: myselect.options[index].text;
二:jquery方法(前提是已经加载了jquery库)

1:var options=$("#test option:selected");  //获取选中的项

2:alert(options.val());   //拿到选中项的值

3:alert(options.text());   //拿到选中项的文本

[2]js数组转json并在后台对其解析具体实现

想必大家在开发过程中也遇到类似问题,如果直接将js获取的数组传给后台,后台是无法区分数组的,因为js数组如果是二维的就是这样的:1,张三,23,2,李四,26

所以在此对其解决方法进行整理。希望能给大家带去帮助

首先需要在js里面对数组进行转换为json格式

js代码如下:

代码如下:

代码语言:javascript
复制
/**
     *js数组转json
     *
     */
    function arrayToJson(o) { 
    var r = []; 
    if (typeof o == "string") return "/"" + o.replace(/([/'/"//])/g, "//$1").replace(/(/n)/g, "//n").replace(/(/r)/g, "//r").replace(/(/t)/g, "//t") + "/""; 
    if (typeof o == "object") { 
    if (!o.sort) { 
    for (var i in o) 
    r.push(i + ":" + arrayToJson(o[i])); 
    if (!!document.all && !/^/n?function/s*toString/(/)/s*/{/n?/s*/[native code/]/n?/s*/}/n?/s*$/.test(o.toString)) { 
    r.push("toString:" + o.toString.toString()); 
    } 
    r = "{" + r.join() + "}"; 
    } else { 
    for (var i = 0; i < o.length; i++) { 
    r.push(arrayToJson(o[i])); 
    } 
    r = "[" + r.join() + "]"; 
    } 
    return r; 
    } 
    return o.toString(); 
    }

然后是在java后台js该字符串后 对其进行json转换。

代码如下:

代码语言:javascript
复制
com.alibaba.fastjson.JSONArray mainArray=JSON.parseArray(info.getMainparame());
     log.debug("数组大小:"+mainArray.size());
       for(int i=0;i< mainArray.size();i++){
           QybjProduceParam p=new QybjProduceParam();
           com.alibaba.fastjson.JSONArray paramObject=(com.alibaba.fastjson.JSONArray)mainArray.get(i);
          p.setParamename(paramObject.get(1).toString());
          p.setParamevalue(paramObject.get(2).toString());

          params.add(p);
       }
       info.setParams(params);

大家从java代码里面 不难看出,是经过2次转换。每次都是转为JSONArray对象。

如果是一维数组就只转换一次。

[3]javascript 循环调用示例介绍

代码语言:javascript
复制
function checksdzt(){
sdzt = $("#viewObj_zt_text").val();
//循环调用,如果已经获取到了结果,则退出循环
loopgetinfo = setInterval("checksdztsub()",50); //这里循环调用,间隔50毫秒
}
function checksdztsub(){

if ($("#viewObj_zt_text").val() !="" && $("#viewObj_zt_text").val() != sdzt)
{
if($("#viewObj_zt_text").val() == "锁定")
{
$("#sdyydes").html("<font color='red'>*</font> 锁定原因");
$("#viewObj_sdyy_text").attr("validate","{required:true}");
}
else if($("#viewObj_zt_text").val() == "正常")
{
$("#sdyydes").html(" 锁定原因");
$("#viewObj_sdyy_text").attr("validate","");
}
else

sdzt = $("#viewObj_zt_text").val();
// clearInterval(loopgetinfo); //终止循环
}
}

原生js获取select下拉框的selected的option项

一. 使用 原生js,获取select标签下属性有selected的option项。

先写一个select标签如下:

代码语言:javascript
复制
<select id="selectBox">
     <option value="VALUE-aaa" selected>
              TEXT-aaaaa
     </option>
     <option value="VALUE-bbb">
              TEXT-bbbbb
     </option>
 </select>

原生js获取select标签这个 对象 :

var selectTest = document.getElementById("selectBox");

  • 然后找到 selected 的option标签的 索引值:

var selectIndex = selectTest.selectedIndex;

  • 这样就可以通过索引来获取选中项的 选中值和文本值:

var selectValue = selectTest.options[selectIndex].value; var selectText = selectTest.options[selectIndex].text;


完整示例测试demo:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <select id="selectBox">
        <option value="VALUE-aaa" selected>TEXT-aaaaa</option>
        <option value="VALUE-bbb">TEXT-bbbbb</option>
    </select>
    <script>
    var selectTest = document.getElementById("selectBox");
    var selectIndex = selectTest.selectedIndex;
    var selectValue = selectTest.options[selectIndex].value;
    var selectText = selectTest.options[selectIndex].text;
    var selectArr = [{
            "selectTest": JSON.stringify(selectTest),
            "selectIndex": selectIndex, 
            "selectValue": selectValue,
            "selectText": selectText 
        }];
    console.table(selectArr);
    </script>
</body>

</html>
  • 示例结果如图:

二. 当然这样写可能会比较麻烦,jquery为我们提供了更加方便的方法

  • 主要是用到了jquery中的 选择器:
代码语言:javascript
复制
var selectedOption = $("#selectBox option: selected");
  • 然后直接使用val() 和 text() 方法:
代码语言:javascript
复制
console.log(selectedOption.val(), selectedOption.text()  );
  • 注意使用jQuery的方法,记得 引入jquery库文件
代码语言:javascript
复制
jQuery获取Select选择的Text和Value:
语法解释:
代码语言:javascript
复制
1.  $("#select_id").change(function(){//code...});   //为Select添加事件,当选择其中一项时触发
2.  var checkText=$("#select_id").find("option:selected").text();   //获取Select选择的Text
3. var checkValue=$("#select_id").val();   //获取Select选择的Value
4. var checkIndex=$("#select_id ").get(0).selectedIndex;   //获取Select选择的索引值
5. var maxIndex=$("#select_id option:last").attr("index");   //获取Select最大的索引值
jQuery设置Select选择的 Text和Value:
代码语言:javascript
复制
语法解释:
代码语言:javascript
复制
1. $("#select_id  ").get(0).selectedIndex=1;  //设置Select索引值为1的项选中
2. $("#select_id ").val(4);    // 设置Select的Value值为4的项选中
3. $("#select_id  option[text='jQuery']").attr("selected", true);   //设置Select的Text值为jQuery的项选中 
代码语言:javascript
复制
jQuery添加/删除Select的Option项:
语法解释:
代码语言:javascript
复制
1.  $("#select_id").append("<option value='Value'>Text</option>");   //为Select追加一个Option(下拉项)
2. $("#select_id").prepend("<option  value='0'>请选择</option>");  //为Select插入一个Option(第一个位置)
3.  $("#select_id option:last").remove();  //删除Select中索引值最大Option(最后一个)
4.  $("#select_id option[index='0']").remove();  //删除Select中索引值为0的Option(第一个)
5.  $("#select_id option[value='3']").remove();   //删除Select中Value='3'的Option
5. $("#select_id option[text='4']").remove();   //删除Select中Text='4'的Option 
代码语言:javascript
复制
http://www.cnblogs.com/SAL2928/archive/2008/10/28/1321285.html 

jquery  radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关 获  取一组radio被选中项的值 
代码语言:javascript
复制
var item = $('input[name=items][checked]').val();
代码语言:javascript
复制
获  取select被选中项的文本 
代码语言:javascript
复制
var item = $("select[name=items] option[selected]").text();  
代码语言:javascript
复制
select下拉框的第二个元素为当前选中值 
代码语言:javascript
复制
$('#select_id')[0].selectedIndex = 1;  
代码语言:javascript
复制
radio单选组的第二个元素为当前选中值 
代码语言:javascript
复制
$('input[name=items]').get(1).checked = true;  
代码语言:javascript
复制
获取值: 
代码语言:javascript
复制
文本框,文本区域:$("#txt").attr("value"); 
多选框  checkbox:$("#checkbox_id").attr("value"); 
单选组radio:    $("input[type=radio][checked]").val(); 
下拉框select: $('#sel').val();  
代码语言:javascript
复制
控制表单元素: 
代码语言:javascript
复制
文本框,文本区域:$("#txt").attr("value",'');//清空内容  
$("#txt").attr("value",'11');//填充内容 
多选框checkbox:  $("#chk1").attr("checked",'');//不打勾 
$("#chk2").attr("checked",true);//打勾  
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾 
单选组 radio:     $("input[type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项 
下拉框  select:   $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项  
$("<option value='1'>1111</option><option  value='2'>2222</option>").appendTo("#sel")//添加下拉框的option  
$("#sel").empty();//清空下拉框 
代码语言:javascript
复制
---------------------------------------------------------------------------------------------------- 

//遍历option和添加、移除option
代码语言:javascript
复制
function  changeShipMethod(shipping){
var len = $("select[name=ISHIPTYPE]  option").length
if(shipping.value != "CA"){
$("select[name=ISHIPTYPE]  option").each(function(){
if($(this).val() ==  111){
$(this).remove();
}
});
}else{
$("<option  value='111'>UPS  Ground</option>").appendTo($("select[name=ISHIPTYPE]"));
}
} 
代码语言:javascript
复制
//取得下拉選單的選取值 
代码语言:javascript
复制
$(#testSelect  option:selected').text();
或$("#testSelect").find('option:selected').text();
或$("#testSelect").val();
代码语言:javascript
复制
//
记  性不好的可以收藏下:
1,下拉框: 
代码语言:javascript
复制
var cc1 = $(".formc select[name='country']  option[selected]").text(); //得到下拉菜单的选中项的文本(注意中间有空格)
var cc2 = $('.formc  select[name="country"]').val(); //得到下拉菜单的选中项的值
var cc3 = $('.formc  select[name="country"]').attr("id");  //得到下拉菜单的选中项的ID属性值
$("#select").empty();//清空下拉框  //$("#select").html('');
$("<option  value='1'>1111</option>").appendTo("#select")//添加下拉框的option 
代码语言:javascript
复制
稍微解释一下:
1.select[name='country'] option[selected]  表示具有name 属性,
并 且该属性值为'country' 的select元素 里面的具有selected 属性的option 元素; 

2,单选框:
$("input[@type=radio][@checked]").val();  //得到单选框的  选中项的值(注意中间没有空格)
$("input[@type=radio][@value=2]").attr("checked",'checked');  //设置单选框value=2的为选中状态.(注意中间没有空格) 

3,复选框:
$("input[@type=checkbox][@checked]").val();  //得到复选框的选中的第一项的值
$("input[@type=checkbox][@checked]").each(function() {  //由于复选框一般选中的是多个,所以可以循环输出
alert($(this).val());
}); 

$("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//  打勾
if($("#chk1").attr('checked')==undefined){} //判断是否已经打勾 

当然jquery的选择器是强大的. 还有很多方法. 
代码语言:javascript
复制
<script src="jquery-1.2.1.js"  type="text/javascript"></script>
<script language="javascript"  type="text/javascript">
$(document).ready(function(){
$("#selectTest").change(function()
{
//alert("Hello");
//alert($("#selectTest").attr("name"));
//$("a").attr("href","xx.html");
//window.location.href="xx.html";
//alert($("#selectTest").val());
alert($("#selectTest  option[@selected]").text());
$("#selectTest").attr("value", "2"); 

});
});
</script> 

<a href="#">aaass</a> 

<!--下拉框-->
<select id="selectTest"  name="selectTest">
<option value="1">11</option>
<option  value="2">22</option>
<option  value="3">33</option>
<option  value="4">44</option>
<option  value="5">55</option>
<option  value="6">66</option>
</select>
代码语言:javascript
复制
jquery  radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关获取一组radio被选中  项的值
var item = $('input[@name=items][@checked]').val();
获取select被选  中项的文本
var item = $("select[@name=items] option[@selected]").text();
select  下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个  元素为当前选中值
$('input[@name=items]').get(1).checked = true;
获取值:
文本  框,文本区域:$("#txt").attr("value");
多选框  checkbox:$("#checkbox_id").attr("value");
单选组radio:  $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();
控  制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
$("#txt").attr("value",'11');//  填充内容
多选框checkbox:  $("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//  打勾
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾
单选组radio:  $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框 select:  $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
$("<optionvalue='1'&  gt;1111</option><optionvalue='2'>2222</option&  gt;").appendTo("#sel")//添加下拉框的option
$("#sel").empty();// 清空下拉框 

获取一组radio被选中项的值
var item =  $('input[@name=items][@checked]').val();
获取select被选中项的文本
var item =  $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当  前选中值
$('#select_id')[0].selectedIndex =  1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked =  true;
获取值:
文本框,文本区域:$("#txt").attr("value");
多选框  checkbox:$("#checkbox_id").attr("value");
单选组radio:  $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();
控  制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
$("#txt").attr("value",'11');//  填充内容
多选框checkbox:  $("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//  打勾
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾
单选组radio:  $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框 select:  $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
$("<option  value='1'>1111</option><option  value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//  清空下拉框 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原生js获取select下拉框的selected的option项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档