我有一个物化多个选择元素。但我似乎无法找到一种方法来检索选定的值。有人知道如何检索选定的值吗?物化多个选择
但问题是关闭时如何检索选择里面的值。
编辑:我使用Materialise的CSS(http://materializecss.com)
我有一个物化多个选择元素。但我似乎无法找到一种方法来检索选定的值。有人知道如何检索选定的值吗?物化多个选择
但问题是关闭时如何检索选择里面的值。
编辑:我使用Materialise的CSS(http://materializecss.com)
你可以用基本的jQuery得到它;没有什么特别的材料标记。
对于选择这样的:
<select id="mySelect" multiple>
<option value="1" selected>Option 1</option>
<option value="2" selected>Option 2</option>
<option value="2">Option 2</option>
</select>
$('#mySelect').val()
将返回所选值的数组:["1", "2"]
材质CSS不会更改Select元素中的选项元素。但它具有生成的更改的UL和LI元素。这些元素生成,所以我不能得到他们的ID。所以这是行不通的。 – Rockernaap
你试过了吗?它隐藏了查看中的底层选择,但它确实更新了值。测试0.97.3:> $('#mySelect')。val()返回null;然后在UI中选择一些内容;然后> $('#mySelect')。val()返回[“1”] – kielni
我确实尝试过。但它没有奏效。但它似乎我的代码有一些缺陷,所以我改变了它,现在你的代码确实工作。谢谢。 – Rockernaap
试试吧(获得更多的选择标记)
var datas = {};// object name=> value
$("form").find("select.initialized").each(function() {
var value_input_select = $(this).parents(".select-wrapper").find("input.select-dropdown").val()
value_input_select = value_input_select.replace(/ /gi,"").replace(/ /gi,"")
var value_input_select_array = value_input_select.split(",")
var value_string = ""
$(this).find("option").each(function(){
if(value_input_select_array.indexOf($(this).text().replace(/ /gi,"").replace(/ /gi,"")) >= 0){
value_string += $(this).attr("value")+","
}
})
if(value_string != ""){
value_string = value_string.substring(0, value_string.length-1)
}
datas[this.name] = value_string;
});
请解释你的答案。尝试它并不能帮助人们学习 –
请尝试这样:在这里你会找到一个合适的方式来检索和删除多重选择中的值。实际上,实际上使用UL和LI来取消选择。这就是它造成错误的原因。
$(document).ready(function() {
$('select').material_select();
$('select').change(function(){
var newValuesArr = [],
select = $(this),
ul = select.prev();
ul.children('li').toArray().forEach(function (li, i) {
if ($(li).hasClass('active')) {
newValuesArr.push(select.children('option').toArray()[i].value);
}
});
select.val(newValuesArr);
console.log($(this).val());
});
});
您正在使用哪个css框架?有几个,他们都有不同的工作。 – Thermatix
实现CSS – Rockernaap