2011-04-29 54 views
1

这真的很奇怪,不知道为什么会发生这种情况,但我的onchange正在发射两次。任何帮助/想法是极大的赞赏...选择onchange在ie7发射两次

<select id="ddlGender" onchange="myfunc()"> 
    <option value="1">-select-</option> 
    <option value="2">Male</option> 
    <option value="3">Female</option> 
    <option value="4">NotSpecified</option> 
</select> 
+2

我们能看到MYFUNC代码()? – slandau 2011-04-29 20:51:17

+0

你可以发布myfunc的内容吗?也许你正在更改myfunc中ddlGender的选定索引,并以这种方式触发另一个onchange? – Zyphrax 2011-04-29 20:52:40

+0

其他事情是否用jQuery以编程方式触发更改事件?在这种情况下,有一个jQuery错误会导致这种行为;让我去搜索bug数据库。 – Pointy 2011-04-29 20:53:47

回答

1

您的Java脚本代码应该是在你的头上加载Java脚本文件:

$(document).ready(function(){ 

    $("#ddlGender").unbind('click').change(myfunc); 

    var myfunc = function (e) 
    { 
    // Do something important.... 
    } 
}); 

如果我没有记错,你需要从解除绑定click事件在IE中选择以避免两次触发事件。

而且你的HTML不应该有任何电平变化多:

<select id="ddlGender"> 
    <option value="1">-select-</option> 
    <option value="2">Male</option> 
    <option value="3">Female</option> 
    <option value="4">NotSpecified</option> 
</select> 
+0

这并不是真的解决了这个问题,而只是提示如何重构代码。为了简单起见,我假设问题中给出的示例使用内联JavaScript。 – 2011-04-29 21:14:16

+0

如果你仔细观察,在改变之前有一个解除绑定('点击'),实际上应该解决这个特定的问题。 – Krule 2011-04-29 21:17:34