使用jQuery检查单选按钮不会触发无线电的onclick事件

时间:2013-10-23 15:30:13

标签: javascript html jquery

我有一对无线电,我在页面.ready事件上使用bind()为其分配了一个函数。 然后,在同一个ready事件中,我检查另一个输入的值,如果它的值是“1”,我在页面加载时预选第二个单选按钮。 这是一个片段。

<input type="radio" name="fpago" id="fpago1" value="1" />one
<input type="radio" name="fpago" id="fpago2" value="2" />two

...

$(document).ready(function() {
    $("#myspan").hide();

    $("#fpago1, #fpago2").bind('change click',function(){
        togglePlazo();
    });

//initial condition to preselect radio #2
    grupo = $("#id_grupo").val();
    if(grupo != '0'){
        $("#fpago2").attr('checked', true); //checks the radio, but doesn't trigger function
    }

});

...

- &GT; see here获取更完整的代码

问题在于,如果满足条件,则检查无线电,但绑定功能togglePlazo()不会触发......

如果稍后我手动点击单选按钮,该功能会被触发,并且跨度切换。它仅在使用jQuery进行的初始“检查”时,尽管无线电发生了变化,但该功能仍未触发。

我不知道我错过了什么,也许我应该绑定除了更改或点击之外的更多事件......我只是找不到我做错了什么。

注意:我使用的是jQuery 1.4.2,但小提琴设置为使用1.6.4(它没有1.4.2作为选项)

2 个答案:

答案 0 :(得分:38)

只需在设置checked属性时触发点击事件。

$("#fpago2").attr('checked', true).trigger('click');

更改元素上的属性不会触发已更改的事件...既不是本机setAttribute,也不是使用jQuery的attr。

答案 1 :(得分:0)

如果您在 imageTypeToggle 函数中写入 console.log('yes');,并且您将在控制台中看到页面加载时 yes 不会打印。你需要像下面这样触发

$(function () {
    $(window).load(function(){
    $("[name=image_type]").on("change",imageTypeToggle).trigger('click');
 })