【问题标题】:jQuery: why doesn't radio button's change event handler retrigger?jQuery:为什么单选按钮的更改事件处理程序不重新触发?
【发布时间】:2018-03-09 23:37:33
【问题描述】:

我有一组单选按钮...

<input type="radio" name="option1" value="foo">
<input type="radio" name="option1" value="bar">

检查时将使用confirm() 来询问用户是否真的要检查该单选按钮或取消。如果用户取消,我希望取消选中单选按钮,以便用户可以在必要时重复相同的过程:

    $("input [type=radio]").change(function() {
        if(confirm_canceled) {
            $(this).prop("checked", false).trigger('change');
        }
    });

单选按钮未选中,但如果我再次单击单选按钮,事件处理程序不会被激活。我猜是因为 change() 触发了值的变化并且没有任何变化,那么我该如何解决这个问题?

编辑:问题是使用confirm 而不是confirm_canceled * face palm *

【问题讨论】:

    标签: jquery events radio-button


    【解决方案1】:

    这是一个基本的例子。

    $('input[type=radio]').on('change', function () {
    	var checked = confirm('Are you sure?');
      if (!checked) {
        $(this).prop('checked', false);
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="radio" name="option1" value="foo">
    <input type="radio" name="option1" value="bar">

    【讨论】:

    • 很奇怪。您的代码有效,但我的代码几乎相同,但没有。我该怎么调试这个......?!
    • 应该是输入后方括号前的空格input [...
    • omg 我不敢相信错误是在 if 语句中使用确认作为变量名。我在想。您的解决方案让我更仔细地查看了代码。
    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    相关资源
    最近更新 更多