从 select2 选定选项中获取属性值
Get attributes values from select2 selected option
我正在使用 Select2 插件,http://ivaynberg.github.io/select2/select2-latest.html 工作正常,但我在从选项属性中获取值时遇到问题。
我有一个这样的选择菜单:
<select name="invoice_line[0][vat]" class="vat">
<option value="20440" data-value="21.00" data-name="20440" selected="selected">21%</option>
<option value="20441" data-value="6.00" data-name="20441">6%</option>
<option value="20442" data-value="0.00" data-name="20442">0%</option>
</select>
如何获取所选选项的属性"数据值"、"数据名称"和"值"的值?
obj = $("#dropdown").select2("data")
obj
变量中,我将获得selected node
的所有data
。
这在另一个 SO 问题中得到了回答
select2 没有直接的方法,你可以使用 select2 数据和 jQuery 的组合:
$("#example").select2().find(":selected").data("id");
首先,您获得select2数据,然后使用jQuery找到所选选项,最后找到data属性。
我们可以使用 select2 data 和 jQuery 的组合:
$("#example").select2('data').element[0].attributes['data-name'].value
以下对我有用。想法是使用"更改"功能如下
<select class="drop-down">
<option value="0">A</option>
<option value="1">B</option>
</select>
$('.drop-down').select2().on("change", function(e) {
var obj = $(".drop-down").select2("data");
console.log("change val=" + obj[0].id); // 0 or 1 on change
});
var return_option = $("#your-select-input-id").select2().find(":selected")[0];
上面给定的语句将返回选择选项,然后将返回结果如下所示:
var name_of_attribute = $( return_option ).attr('name-of-attribute');
这将返回属性值。
不知道插件,并且没有检查代码是否有效,我想它会是这样的:
$('.vat li').each(function(){
var me = $(this),
mevalue = me.attr('value'),
datavalue = me.data('value'),
dataname = me.data('name');
//do what you want with the data?
});
将 select2 置于标记模式 ,它会帮助你。或尝试下面的类似代码,它可能对您有用...
$("$id").select2("val", option);
$("$id").attr("data-name");
我知道这是一个旧帖子,但我正在努力解决同样的问题。这是我和我的好朋友Thys最终开始工作的解决方案:
<script type="text/javascript">
$(document).ready(function ()
{
$("#e1").select2();
$("#e1").change(function () {
var theID = $("#e1").val();
$('#staffNr').val(theID);
$('#staffNr').val();
//var theID = $(test).select2('data').id;
var theSelection = $(test).select2('data').text;
$('#selectedID').text(theID);
$('#selectedText').text(theSelection);
});
});
@Html.Hidden("fieldName","staffNr");
这在我的 MVC 4 视图中有效,在我的 html 表单中的最后一行,它被正确添加到模型中。如果您使用我的答案,请不要忘记投赞成票:)我没有太多的名声...
我希望你能解决这个问题。在这里我们不使用 select2()
,如果我们使用select2()
它将无法像formatNoMatches, on-change....
$("#example").find(":selected").data("id");
el = document.getElementsByName("invoice_line[0][vat]")
el.options[[el.selectedIndex]].attributes["data-id"].value
所选项目的params.data.element
对象保存要查找的数据。
其中.foo
是我正在调用的选择元素,而我要访问的选项中的数据属性是data-bar="some value"
以下内容对我有用:
var $fooSelect = $('.foo');
$fooSelect.on(function (e) {
console.log($(e.params.data.element).data('bar'));
});
您可以访问在 DOM 结构中查找的属性:
<select id="select_name">
<option value="20440" data-value="21.00">21%</option>
<option value="20441" data-value="6.00">6%</option>
<option value="20442" data-value="0.00">0%</option>
</select>
$('#select_name option').each(function (index) {
console.log($(this).attr("data-value"));
});
选择元素设置一个 id,这将起作用
$('select#your-id').find('option[value="'+$('#your-id').val()+'"]').attr('data-attribute');
你必须用on("change"...)来做,因为这是一个动态生成的选项列表。
$('.select_class').on("change",function(){
var selected_value= $('.hakemler').val();
var wanted= $('.select_class').find('option[value="'+selected_value+'"]').attr('data-foo');
alert(selected_value+" "+wanted);
});
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何从选择框中的选项中获取属性值
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- 使用Undercore获取属性值数组
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- "无法获取属性'的值;style'"当试图在IE中更改样式时
- 无法获取属性'字符串'的未定义或null引用IE 11 ASP.NET
- 无法获取属性'的值;拆分'在IE8中调用ajax之后
- JQuery关键字“;这个“;未获取属性值
- SCRIPT5007:无法获取属性'长度'的未定义引用或null引用
- 为什么我得到“;无法获取属性的值'SetReturnValue'"当使用ceebox显示YouT
- 无法获取属性'setActionableButtonState'的未定义引用或null引用
- JavaScript |对象:获取属性忍者移动
- 如何使用 jQuery 在循环中获取属性的值
- 无法获取属性'偏移'的未定义引用或null引用
- 从列表中的选定项获取属性值
- 获取属性(邮政编码)并在Google地图API 3中使用
- IE:无法获取属性'的值;clientWidth':对象为null或未定义
- 如何通过类名和过滤函数获取属性值
- 无法使用javascript表示法获取属性值