jQuery 1.7.2 - selector.val() 在 IE 8 中中断

jQuery 1.7.2 - selector.val() breaks in IE 8

本文关键字:IE 中断 val selector jQuery      更新时间:2023-09-26

我的HTML中有以下块

<div class="selection">
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="I am solely responsible for the decision">I am solely responsible for the decision </p>   
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="I am partially responsible for or influence the decision">I am partially responsible for or influence the decision </p>
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="I am not involved in the decision">I am not involved in the decision </p>
  <p><input name="custrecord_npsdtl_decision" id="custrecord_npsdtl_decision" type="radio" value="Don't know">Don't know </p>
</div>

以及一个根据所选选项检查表单进度的函数,其中包含以下代码片段:

var decisionmaker = $('#custrecord_npsdtl_decision:checked').val();
if (decisionmaker == elements['customlist_nps_decision'][2] || decisionmaker == elements['customlist_nps_decision'][3]) {
  redirect();
}

这在 Chrome、Firefox 中按预期工作,但在 Internet Explorer(8( 中不起作用。 做一些检查我发现

$('#custrecord_npsdtl_decision:checked')

按预期返回一个对象,但对该对象调用 val(( 返回未定义。

我完全不知所措。如何从IE中的单选列表中获取所选选项?

ID 必须是唯一的。我很惊讶这在Chrome和Firefox中完全有效。

删除 id 属性并按名称选择。

$('input[name="custrecord_npsdtl_decision"]:checked').val();

不应该为每个单选按钮使用相同的 ID,您可以使用名称选择器来获取组选择

$('input[name=custrecord_npsdtl_decision]:checked').val();