我正在尝试获取此单选框的数据属性:
<div id="corrieriContainer">
<label><input checked="checked" type="radio" name="spedizione" data-courier="DHL" value="8.56">€ 8.56</label>
<label><input type="radio" name="spedizione" data-courier="FEDEX" value="6.23">€ 6.23</label>
</div>
使用此代码,但它不起作用:
$("#corrieriContainer").on('change','input[type=radio][name=spedizione]',function(){
var valore = $(this).prop('checked',true).val();
var corriere = $(this).prop('checked',true).data('courier');
alert(corriere);
});
我总是得到&#34;未定义&#34;值。为什么?我可以正确地得到$(this).prop(&#39; checked&#39;,true).val();,但不是数据属性。
你能帮我理解吗?
谢谢
答案 0 :(得分:2)
您真的不需要.prop('checked',true)
,这用于以编程方式为单选按钮或复选框指定值。
由于用户手动点击它来更改值,因此不需要它。
$(function() {
$("#corrieriContainer").on('change', 'input[type=radio][name=spedizione]', function() {
var valore = $(this).val();
var corriere = $(this).data('courier');
alert(corriere);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="corrieriContainer">
<label><input checked="checked" type="radio" name="spedizione" data-courier="DHL" value="8.56">€ 8.56</label>
<label><input type="radio" name="spedizione" data-courier="FEDEX" value="6.23">€ 6.23</label>
</div>