在触发事件处理程序之前执行单击操

时间:2012-01-04 09:18:00

标签: jquery

我有一张桌子,其中包含radiobuttons。我希望用户能够点击表格,这将点击其中的单选按钮。然后我获取已检查的radiobutton的值并发送到服务器以获得一些更新。

直接点击radiobutton时,它只是花花公子,并且标记的radiobutton的值是正确的。

但是,如果我只是在radiobutton上使用.click();,事件处理程序似乎在实际点击事件发生之前触发,并且在使用$("input:radio:checked").val()时我得到之前的值。

我现在通过在单击处理程序中设置100毫秒的超时来“解决”这个问题,但它似乎错了。

有没有办法在处理之前执行实际点击?

感谢。

2 个答案:

答案 0 :(得分:3)

你如何绑定点击事件?

此外,您可能需要的是.change()事件。只有在价值发生变化后才能解雇。

$("input:radio").change(function() {
    alert($(this).is(':checked'));
});

答案 1 :(得分:1)

使用 .change()事件而不是单击()。即:

$("input:radio:checked").change(function() {
    if ($(this).is(':checked')) {
        console.log('Checked ' + $(this).val().toString());
    }
});