单选按钮检查JS无法正常工作?

时间:2016-04-27 01:08:45

标签: javascript jquery

我觉得我在这里是超级钝的,所以做了一个小提琴,为什么每当我检查另一个单选按钮时,它都不会被检查?

在小提琴中,它将加载" 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)
  }
}

1 个答案:

答案 0 :(得分:1)

转而聆听change事件。

<强>更新

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

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

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

获取所选选项