javascript - 从 mdl 单选按钮获取值

标签 javascript jquery material-design-lite

在下面的代码中,为什么 radio 在通过变量名称检查时没有报告正确的值?

var $myRadio = $('input[type=radio][name=options]:checked');

$('#button').click(() => {
  // this works
  console.log($('input[type=radio][name=options]:checked').val());
  // this doesn't :(
  console.log($myRadio.val());
});

https://jsfiddle.net/charsi/p4beztwx/13/

我正在使用mdl单选按钮,因此可能会导致它。我还尝试使用 $myRadio[0].MaterialRadio.value 获取值,但这也不起作用。

编辑:这是一个措辞不佳的问题,并且与 mdl 没有任何关系。我真正想要的是能够在其他地方为我的单选按钮设置 DOM 变量,而不必再次按名称选择它来检查值。

最佳答案

通过变量名称检查时获取不正确值的原因是您在点击事件之前设置了 $myRadio$myRadio 在文档就绪时设置(在单击事件之前),它获取选中的单选选项的值,此时该值始终为 1。

在点击处理程序中移动 $myRadio 应该可以。为什么?因为现在一旦调用单击函数,它就会获取 radio 的值(选中),这实际上正是您所需要的。

$('#button').click(() => {
  var $myRadio = $('[id^="option"]:checked');
  // neither of these work
  alert($('input[type=radio][name=options]:checked').val());
  alert($myRadio.val());

});

fiddle here

关于javascript - 从 mdl 单选按钮获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001574/

相关文章:

Javascript 停止运行且没有错误消息

jquery - 如何检索 html5 <nav> 标签下的所有项目

javascript - 使用 MDL 动态构建的输入无法正确呈现

html - 在主 package 器上方添加内容时,Material Design Lite 会溢出页面

javascript - 带有 MVC 3 和 ViewModel 的 Backbone.js

javascript - 如何使用 php 将任何文件(如 .docx、xslx、img、txt)转换为 PDF 预览?

javascript - 将焦点设置到剑道数字文本框

javascript - C# Webbrowser - 通过div id识别javascript函数

javascript - 如何在没有 if else 语句的情况下比较两个值

html - Material Design Lite - Firefox 上的文本区域错位