获取select 中有multiple属性,获取选中的值

本文介绍了一个简单的JavaScript方法,用于从<select>元素中获取多个已选中的选项值,并通过避免遍历所有选项来提高效率。适用于前端开发中的表单处理。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title> New Document </title>
 </head>

 <body>

<script language="JavaScript">
  <!--
function checkselect(objname){
	o = document.getElementById(objname);
	t = document.getElementById("output");
	var intvalue="";
	for(i=0;i<o.length;i++){   
		if(o.options[i].selected){
			intvalue+=o.options[i].value+",";
		}
	}
	t.value=intvalue.substr(0,intvalue.length-1);
}
  //-->
  </script>
  <select name="objsel" size=8 multiple>
	<option value="0" selected>请选择...
	<option value="1">测试一
	<option value="2">测试二
	<option value="3">测试三
	<option value="4">测试四
	<option value="5">测试五
  </select>
<input type="button" οnclick="checkselect('objsel');" value="输出">
选中的项目:<input type="text" name="output">
 </body>
</html>

 

 

转:http://zhoujingxian.iteye.com/blog/559804

 

 

/**
* 获取multiple Select的值
* @param obj   multiple select元素
* @returns {Array}

 

*/

 

 

 

    functiongetMultiple(obj){
      var arr = [];
      var options = obj.options;

 

     while (obj.selectedIndex != - 1 ){
            arr.push(options[obj.selectedIndex].value);
            options[obj.selectedIndex].selected = false ;
      }
      return arr;
     }

通过对选中项逐一取消选择,得到选中项的值的数组。这个方法的妙处就在避免了在选项非常多时遍历所有选项(这个遍历对旧版本的浏览器来说会很慢)

用法很简单:

 

var arr =  getMultiple(document.getElementById( 'select_m' ));

 

 

 

\\ do something with arr ...
 
 

 

 

### 在 WinForms Antd 2.0.3 中使用 SelectMultiple 组件获取当前选中 在 WinForms Antd 2.0.3 中,`SelectMultiple` 是一个用于多选的控件。要获取当前选中,可以通过访问控件的 `SelectedValues` 属性来实现[^1]。以下是一个详细的说明和代码示例: #### 属性介绍 - **SelectedValues**:该属性返回一个包含所有当前选中项的集合。通过遍历这个集合,可以获取所有的选中。 - **ValueChanged**:这是一个事件,当用户更改选中项时会触发。可以在此事件中处理选中的变化逻辑。 #### 示例代码 以下代码展示了如何初始化 `SelectMultiple` 控件并获取当前选中: ```csharp using System; using System.Collections.Generic; using System.Windows.Forms; public class MainForm : Form { private Antd.SelectMultiple selectMultiple; public MainForm() { // 初始化 SelectMultiple 控件 selectMultiple = new Antd.SelectMultiple(); selectMultiple.Dock = DockStyle.Top; selectMultiple.DataSource = new List<string> { "Option1", "Option2", "Option3" }; // 添加 ValueChanged 事件处理程序 selectMultiple.ValueChanged += SelectMultiple_ValueChanged; this.Controls.Add(selectMultiple); } private void SelectMultiple_ValueChanged(object sender, EventArgs e) { // 获取当前选中 var selectedValues = selectMultiple.SelectedValues; // 输出选中到控制台(或可以显示在其他控件中) Console.WriteLine("Selected Values: " + string.Join(", ", selectedValues)); } } ``` #### 注意事项 如果发现控件无法正常工作,请检查以下内容: 1. 确保控件的 `Enabled` 和 `Visible` 属性已正确设置为 `true`[^2]。 2. 如果数据源动态更新,请确保在更新后调用控件的刷新方法以反映最新状态。 3. 参考官方文档,了解 `SelectMultiple` 的完整功能和可能的限制[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值