【问题标题】:jQuery/Javascript problem with IEIE 的 jQuery/Javascript 问题
【发布时间】:2010-04-12 22:51:05
【问题描述】:

我有两个单选按钮,每个按钮都有一个唯一的 ID。单击一个时,我想总共增加 10 美元。当另一个被点击时,我们回到原来的总价。我的 jquery 看起来像这样:

function check_ceu() {
    var price = <%= conference_price %>;
    if($('#ceu_yes').is(':checked')){
            $('#total').val(parseFloat(price) + 10)
        }
        else{
            $('#total').val(price)
        }       
}

我将此函数绑定到 document.ready(用于页面刷新)以及单选按钮的 onchange 处理程序。

在 FF 和 Chrome 中,这可以正常工作。在IE中,当无需检查带有“ CEU_YES” ID的广播按钮什么也没发生,然后单击回到另一个单选按钮时,添加了10。所以本质上,IE 的复选框功能被颠倒了。下面是我的按钮代码:

<input type="radio" name="ceu" id="ceu_yes" value="1" onchange="check_ceu()" /> $10
<input type="radio" name="ceu" id="ceu_no" value="0" checked="checked" onchange="check_ceu()" /> No, thank you

对此有什么想法吗?

【问题讨论】:

    标签: javascript jquery radio-button


    【解决方案1】:

    IE 的“更改”事件处理程序搞砸了。它不会按预期触发。 (http://webbugtrack.blogspot.com/2007/11/bug-193-onchange-does-not-fire-properly.html)

    如果您更改逻辑以附加到单选按钮上的“单击”事件,您将获得所需的效果。

    注意。很好的是,当您进入该字段并使用键盘上的空格键操作它时,click 事件仍然会正确触发,因此不会丢失任何功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多