javascript - JS 中的单选按钮检查不起作用?

标签 javascript jquery

我觉得我在这里太迟钝了,所以做了一个 fiddle ,为什么每当我检查另一个单选按钮时,它就不会保持选中状态?

在 fiddle 中,它将加载“diy”按钮;如果您单击“付费”,您会看到单选按钮在警报加载时跳转到那里,但随后又跳回来,即使 JS 语句在控制台中独立工作也是如此。帮助表示赞赏! (顺便说一句,我尝试了两种检查方法,都失败了)

https://jsfiddle.net/gzf28hsk/

这个函数可能会被破坏,但我不知道在哪里

function populateLogistic(type, new_status = null) {
  radio_paid = $('input[name="delivery"][value="paid"]')
  radio_diy = $('input[name="delivery"][value="diy"]')

  if (new_status === null) {
      radio_paid.prop("checked", false)
      radio_diy.prop("checked", true)
  } else if (new_status == "paid") {
      alert(new_status)
      //radio_paid.checked = true
      //radio_diy.checked = false
      radio_paid.prop("checked", true)
      radio_diy.prop("checked", false)
  } else if (new_status == "diy") {
      //radio_paid.checked = false
      //radio_diy.checked = true
      radio_paid.prop("checked", false)
      radio_diy.prop("checked", true)
  }
}

最佳答案

改为监听 change 事件。

更新

实际上,问题在于您在事件处理程序中执行了e.preventDefault();,取消了事件并撤消点击。

无论如何,最好监听输入更改的 change 事件,因为您可以确定值实际上已更改,并且如果输入更改而无需单击,也会触发该事件,例如使用键盘。

也就是说,您可以(或应该)使用 $('input[name="delivery"]:checked').val() 而不是 $( this).val()

关于javascript - JS 中的单选按钮检查不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878560/

相关文章:

javascript - 防止文档样式表影响chrome扩展注入(inject)的元素样式

javascript - 如何在 Postgresql 中进行批量插入并避免重复

javascript - 创建一个从特定页面获取数据的函数

javascript - image.complete 总是返回真

javascript - 单击链接并转到输入

javascript - 下拉菜单使用 jQuery、Bootstrap 选择值

javascript - 扩展然后排序Underscore js

javascript - 回调,错误 : is not a function

javascript - 如何从字符串中提取与禁止单词数组中包含的单词相匹配的单词(并删除任何剩余的空格)?

javascript - 需要在单击时突出显示 jqxNumberInput 的内容