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

标签 javascript jquery internet-explorer-8

我的 HTML 中有以下 block

<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();

关于javascript - jQuery 1.7.2 - selector.val() 在 IE 8 中中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725597/

相关文章:

javascript - 如何在 JavaScript 中使用单个循环在就绪函数中显示隐藏多个 id?

internet-explorer - 页面无法在 IE7 或 IE8 中完全加载(但可以在其他浏览器中使用)

javascript - 无法将文件响应管理器与 TinyMCE 4 集成

javascript - React Native 中基于 API 的布局

javascript - 如何使用 jquery 在客户端引用选定的图像?

javascript - jQuery .submit 问题

javascript - 向 Nickjs tab.open() 函数添加 header 选项

jquery - ajax加载的表单是否需要验证码

html - 内联图像支持的差异?

javascript - HighCharts.js 在 IE8 下不渲染图表