<Multiselect label='Select College' ref="collegeList" onChange={this.handleChange} multiple >
<option value='college1'>college1</option>
<option value='college2'>college2</option>
</Multiselect>
此组件来自https://github.com/skratchdot/react-bootstrap-multiselect
handleChange()函数中应该写什么?
我建议在组件中设置一个名为selectedItem的状态。
然后,onChange
回调从Bootstrap MultiSelect文档中获取参数元素
和检查
。元素具有val()
方法,该方法返回分配给选项的值。
因此,handleChange可以通过以下方式实现
handleChange: function (element, checked) {
var newSelectItems = _.extend({}, this.state.selectItems);
newSelectItems[element.val()] = checked;
this.setState({selectItems: newSelectItems})
},
getInitialState: function () {
return {selectItems: {}};
}
这样,每次单击一个元素时,它的checked
属性都会保存在组件状态中,如果需要根据MultiSelect
所选值更改任何内容,这非常方便。
请注意,对于上述代码,您需要下划线或Lodash库。这是必要的,因为React不能合并嵌套对象,正如这里所回答的。
不幸的是,react bootstrap multiselect
似乎没有公开用于获取当前选定项的任何类型的API,因此您必须直接从DOM查询它们。试着这样做:
handleChange: function () {
var node = React.findDOMNode(this.refs.collegeList);
var options = [].slice.call(node.querySelectorAll('option'));
var selected = options.filter(function (option) {
return option.selected;
});
var selectedValues = selected.map(function (option) {
return option.value;
});
console.log(selectedValues);
}
如果您使用的是jQuery,可以将其简化为:
handleChange: function () {
var node = $(React.findDOMNode(this.refs.collegeList));
var selectedValues = node.children('option:selected').map(function(option) {
return option.value;
});
console.log(selectedValues);
}
这里有一个更干净的es6方法:)
let selected = [...this.refs.select]
.filter(option => option.selected)
.map(option => option.value)
好了,所有选择的选项!
以下代码起作用: 如何将第二行重构为: 您对所选的******选项使用了什么?
问题内容: 我有一个html表单,该表单具有一个选择列表框,您可以从中选择多个值,因为其multiple属性设置为multiple。考虑表单方法为“ GET”。表单的html代码如下: 我想在display.php页面的选择列表框中显示选定的值。那么如何使用数组在display.php页面上访问选定的值。 问题答案: 如果要将PHP 视为选项数组,只需将方括号添加到 select元素 的名称中,如
问题内容: 所以,我想用香草JS做的事情很简单,但是我使用的是AngularJS,我想知道如何在框架内以最佳方式做到这一点。我想在多个选择框中更新所选的选项。我不想添加或删除任何选项。这是我的HTML外观: 使用以下数组,我想以编程方式从此列表中选择/取消选择选项: 当我在范围中设置此数组时,我希望选择框取消选择不是蓝色或红色的任何内容,然后选择蓝色和红色。我在Google网上论坛上看到的标准回复
问题内容: 如何使用Selenium WebDriver和Python获取选定的选项: 有人有解决方案吗? 我正在使用它来获取select元素: 是否有类似的东西或类似于“ getFirstSelectedOption”的东西: 然后,我想用类似的方式验证内容: 问题答案: 这很容易处理- 类:
问题内容: 我想选择,,从多个选择其中有10个选项。我只想选择这三个选项。 HTML代码: selenium键代码: 我尝试使用此代码。使用此代码,我可以选择第一个选项,即“ P0_ENGLISH”。但是,选择第一个选项后,我得到一个错误: 问题答案: 要从 Multi Select 元素中选择多个 选项 ,可以使用 ActionChains 模拟 Control单击* ,如下所示: *