如何使用javascript或jquery获取dropdownlist中自定义属性的值

如何使用javascript或jquery获取dropdownlist中自定义属性的值,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我在网络表单上有下拉列表。我需要一个'隐藏'的下拉列表中的每个项目的变量,我可以检索客户端使用onchange事件。 因此,在页面加载中,我将在数据绑定dropdownlist后设置一个自定义属性: For i = 0 To cboNameAL.Items.Count - 1 cboNameAL.Items(i).Attributes.Add("Charge_Rate", usernamesAdapterDataTable.Item(i).ChargeRate) Next

我在网络表单上有下拉列表。我需要一个'隐藏'的下拉列表中的每个项目的变量,我可以检索客户端使用onchange事件。 因此,在页面加载中,我将在数据绑定dropdownlist后设置一个自定义属性:

For i = 0 To cboNameAL.Items.Count - 1
            cboNameAL.Items(i).Attributes.Add("Charge_Rate", usernamesAdapterDataTable.Item(i).ChargeRate)
Next
这是可行的,当我查看呈现的页面时,我看到dropdownlist中每个项目的标记

<option value="05ab8c45-f7ce-4250-8458-1421e79e8a51" charge_rate="32">dave</option>
戴夫 我的javascript函数在onchange事件中启动良好,但是我无法检索Charge\u Rate的属性值

我尝试了以下各种组合:

var lCharge_Rate = document.getElementById("<%=cboNameAL.ClientID%>").selectedItem.attributes('Charge_Rate');

var lCharge_Rate = document.getElementById("<%=cboNameAL.ClientID%>").attributes('Charge_Rate');

var lCharge_Rate = document.getElementById("<%=cboNameAL.ClientID%>")attr('Charge_Rate');

var lCharge_Rate = document.getElementById("<%=cboNameAL.ClientID%>").getAttributes('Charge_Rate');
var lCharge_Rate=document.getElementById(“”)。selectedItem.attributes('Charge_Rate');
var lCharge_Rate=document.getElementById(“”).attributes('Charge_Rate');
var lCharge_Rate=document.getElementById(“”)attr(‘费用率’);
var lCharge_Rate=document.getElementById(“”).getAttributes('Charge_Rate');
每个都有(“收费率”)或(“收费率”)或

我已经调试过了,我能做的最好的事情就是将可变lCharge_Rate设置为null。
有什么想法吗?如果不能这样做,很乐意返工…

创建一个等于自定义属性值的变量,然后根据需要使用它。查看我的示例并根据需要进行调整

var$divAtribut=$(“div”).attr(“收费率”);
警惕($divAtribut)


单击run获取属性
创建一个等于自定义属性值的变量,然后根据需要使用它。查看我的示例并根据需要进行调整

var$divAtribut=$(“div”).attr(“收费率”);
警惕($divAtribut)

单击run以获取属性
简
二月
破坏
四月
也许
$(文档).ready(函数(){
var monthvalue=$('.custom select two:selected')。数据('monthvalue');
alert(monthvalue);//下面是下拉选项的自定义属性值
});

简
二月
破坏
四月
也许
$(文档).ready(函数(){
var monthvalue=$('.custom select two:selected')。数据('monthvalue');
alert(monthvalue);//下面是下拉选项的自定义属性值
});

在获取属性之前,需要先选择选项

var e=document.getElementById(“客户端id”),
lCharge_Rate=e.options[e.selectedIndex].getAttribute('charge_Rate');
文件。写入(“费率=”+lCharge_费率)

戴夫

在获取属性之前,需要先选择选项

var e=document.getElementById(“客户端id”),
lCharge_Rate=e.options[e.selectedIndex].getAttribute('charge_Rate');
文件。写入(“费率=”+lCharge_费率)

戴夫

您可以使用以下代码获取自定义属性的值

    //This line will load the DOM of dropdown 
    var cboNameAL = document.getElementById("<%=cboNameAL.ClientID%>");
    //This will return the selected option
    var selectedOption = cboNameAL.options[cboNameAL.selectedIndex];
    //This will give you the value of the attribut
    var charge_rate = selectedOption.attributes.charge_rate.value;
//此行将加载下拉列表的DOM
var cbonadime=document.getElementById(“”);
//这将返回所选选项
var selectedOption=cbonadime.options[cbonadime.selectedIndex];
//这将为您提供属性的值
var charge\u rate=所选选项.attributes.charge\u rate.value;

您可以使用以下代码获取自定义属性的值

    //This line will load the DOM of dropdown 
    var cboNameAL = document.getElementById("<%=cboNameAL.ClientID%>");
    //This will return the selected option
    var selectedOption = cboNameAL.options[cboNameAL.selectedIndex];
    //This will give you the value of the attribut
    var charge_rate = selectedOption.attributes.charge_rate.value;
//此行将加载下拉列表的DOM
var cbonadime=document.getElementById(“”);
//这将返回所选选项
var selectedOption=cbonadime.options[cbonadime.selectedIndex];
//这将为您提供属性的值
var charge\u rate=所选选项.attributes.charge\u rate.value;

这些不起作用的原因是,您正在按ID进行搜索,但没有为
分配ID。如果要将值
05ab8c45-f7ce-4250-8458-1421e79e8a51
指定为id,则可以使用
document.getElementById(“”.getAttribute('charge_rate')检索收费率id指的是dropdownlist控件,其引号表示列表中的一项。这些控件不起作用的原因是,您正在按id搜索,但没有为
分配id。如果要将值
05ab8c45-f7ce-4250-8458-1421e79e8a51
指定为id,则可以使用
document.getElementById(“”.getAttribute('charge_rate')检索收费率id指的是dropdownlist控件,其引号表示列表中的一项。希望它仍然有用。欢迎使用Stackoverflow。在回答问题时,你应该表示一些感谢。我想我得到了你的建议:使用dataattributes而不是attributes。尝试过-修改了我的代码,调用属性“data-Charge\u Rate”并使用document.getElementById(“”).data('Charge\u Rate');但不幸的是,当javascript告诉我TypeError:document.getElementById(…)时,我遇到了一个错误。数据不是一个函数,希望它仍然有用。欢迎使用Stackoverflow。在回答问题时,你应该表示一些感谢。我想我得到了你的建议:使用dataattributes而不是attributes。尝试过-修改了我的代码,调用属性“data-Charge\u Rate”并使用document.getElementById(“”).data('Charge\u Rate');但不幸的是,当javascript告诉我TypeError:document.getElementById(…)。数据不是函数时,我遇到了一个错误。谢谢。但这行javascript实际上并没有执行。你能解释为什么我需要先选择“选项”吗?谢谢thebasah-你在正确的轨道上需要先选择选项。请参阅Rakesh Nalumachu的回复。我假设您将ID放在下拉列表中,因为您只在代码中提到了没有ID的选项。当您选择element document.getElementById(“”)时,结果是下拉元素,但您想要的属性在选项中,这就是为什么您需要首先选择options属性的原因。谢谢。但这行javascript实际上并没有执行。你能解释一下为什么我需要先选择“选项”吗?谢谢