Javascript 在select2中使用ajax时无法获取自定义属性值
我正在使用ASP.NET 我有一个使用select2的下拉列表,当选择某个对象时,使用ajax调用带有两个参数的(apicontroller)操作 行动:Javascript 在select2中使用ajax时无法获取自定义属性值,javascript,asp.net,ajax,asp.net-ajax,jquery-select2,Javascript,Asp.net,Ajax,Asp.net Ajax,Jquery Select2,我正在使用ASP.NET 我有一个使用select2的下拉列表,当选择某个对象时,使用ajax调用带有两个参数的(apicontroller)操作 行动: public class MyController: ApiController { [HttpGet] public string Helper(string para0, string para1, string para2) { return something;} } html: <select id="sel
public class MyController: ApiController
{
[HttpGet]
public string Helper(string para0, string para1, string para2) { return something;}
}
html:
<select id="selectCase">
<option>Select a Case</option>
<option value="abc" data-para1="1" data-para2="2"> "abc" </option>
<option value="def" data-para1="1" data-para2="2"> "abc" </option>
</select>
但是当它运行时,只有$(this).val()获得正确的值,$(this).attr(“data-para1”和$(this).attr(“data-para1”)都未定义。我们也尝试使用$(this).data(“para1”),但仍然无法工作
谢谢
实际上,我跳过了在html中使用optgroup的部分,不确定这是否有什么不同
<select id="selectCase">
<option></option>
<optgroup label="0">
<option value="abc" data-para1="1" data-para2="2"> "abc" </option>
</optgroup>
<optgroup label="0">
<option value="def" data-para1="1" data-para2="2"> "abc" </option>
</optgroup>
</select>
“abc”
“abc”
您可以使用$(this)。查找('option:selected')
以获取所选选项,然后获取在每个选项中定义的自定义属性
演示代码:
$('selectCase')。选择2({
宽度:“100%”,
占位符:“选择一个选项”,
allowClear:对
});
$('#selectCase')。在('select2:select',function()上{
//获取所选选项,然后检索所需数据
var$select=$(this.find('option:selected');
console.log(“para0=“+$select.val()+”¶1=“+$select.attr('data-para1')+”¶2=“+$select.attr('data-para2'));
});
“abc”
“abc”
您可以使用$(this)。查找('option:selected')
以获取所选选项,然后获取在每个选项中定义的自定义属性
演示代码:
$('selectCase')。选择2({
宽度:“100%”,
占位符:“选择一个选项”,
allowClear:对
});
$('#selectCase')。在('select2:select',function()上{
//获取所选选项,然后检索所需数据
var$select=$(this.find('option:selected');
console.log(“para0=“+$select.val()+”¶1=“+$select.attr('data-para1')+”¶2=“+$select.attr('data-para2'));
});
“abc”
“abc”
谢谢你的帮助!!!虽然我还没有定义…但我想知道这是否是因为我使用的是我在原始问题陈述中跳过的optgroup,我已经更新了它,并尝试使用$(this).children('optgroup:selected').children('option:selected').attr(“data-para1”)再一次,它不起作用了…我已经更新了我的答案,您可以使用$(this.find('option:selected'))
,检查是否有效谢谢你的帮助!!!虽然我还没有定义…但我想知道这是否是因为我使用的是我在原始问题陈述中跳过的optgroup,我已经更新了它,并且还尝试了$(this).children('optgroup:selected').children('option:selected').attr(“data-para1”)我已经更新了我的答案,你可以使用$(这个)。查找('option:selected')
,检查是否有效
<select id="selectCase">
<option></option>
<optgroup label="0">
<option value="abc" data-para1="1" data-para2="2"> "abc" </option>
</optgroup>
<optgroup label="0">
<option value="def" data-para1="1" data-para2="2"> "abc" </option>
</optgroup>
</select>