【问题标题】:call change() event handler if I select radio button programatically如果我以编程方式选择单选按钮,则调用 change() 事件处理程序
【发布时间】:2012-04-15 10:58:24
【问题描述】:

我有这样的 HTML:

<input type="radio" name="type" value="FL" checked="checked" />Fixed
<input type="radio" name="type" value="SV" />Saving
<input type="radio" name="type" value="L2" />Type 2

以下脚本

$(function () {
        $('input[name=type]').change(function () {
            alert($(this).val());
        });
        $('input[value=SV]').attr('checked', 'checked');
    });

首先,为单选按钮添加了一个更改事件。 如果我从 UI 中选择单选按钮,则会触发更改事件处理程序。 但是当我以编程方式更改选定的单选按钮值时,它不会触发。

我希望change event 在我以编程方式选择单选按钮时也被触发。

【问题讨论】:

  • 您选择了一个错误的昵称。明年你会做什么……?
  • 我将在几天后将其更改为我的真实姓名。
  • Checkbox change event not firing 的可能重复项...请在提出新问题之前使用搜索。
  • @new to stackoverflow,在每一个要求投票的回复中添加评论不是一个好政策,不会让你获得更多的投票;问一个好问题会。你的 cmets 可能会被标记。
  • @FlomEnol 亲爱的,对此感到抱歉..bt 那我什至不能投票给答案。那是因为我做到了。现在我已经删除了任何这样的 cmnts。再次抱歉

标签: javascript jquery radio-button radiobuttonlist


【解决方案1】:

它不会自动改变。您必须执行以下操作之一:

要么

$('input[value=SV]').attr('checked', 'checked').trigger("change")

$('input[value=SV]').attr('checked', 'checked').change();

【讨论】:

  • 谢谢@FreeCandies 我喜欢你描述的第二种方法。
【解决方案2】:

您可以使用trigger() 以编程方式引发事件:

$(function () {
  $('input[name="type"]').change(function() {
    console.log($(this).val());
  });
  $('input[value="SV"]').prop('checked', true).trigger('change');        
});

【讨论】:

    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多