在chrome最新版本中打破的选择列表上的jQuery .change()

时间:2013-06-15 04:22:06

标签: jquery google-chrome select

我在windows 8 pro上使用版本27.0.1453.110 m的chrome。我有一个简单的SELECT元素和一个.change()函数。当所选项目发生变化时,应调用此函数。适用于IE和FireFox,以及旧版本的chrome,但在最新版本的Chrome中它已经坏了。当我单击向上/向下箭头或向上翻页/向下翻页滚动条而不先点击选项时,我会触发更改()。但是,一旦我点击一个选项,这种行为就会消失,而且工作正常。有任何想法如何解决这个问题?我做错了吗?

http://jsfiddle.net/TH8wk/16/

 <form method="POST" action="">
<select id="a100" size="3">
    <option value="1">1</option>
    <option selected="selected" value="4">4</option>
    <option value="21">21</option>
    <option value="211">211</option>
    <option value="2344">2344</option>
    <option value="2qwr">2qwr</option>
</select>
    </form>


    $(document).ready(function () {
        $('#a100').change(function () {
            alert('change');
        });
    });

1 个答案:

答案 0 :(得分:0)

现在我明白你在说什么。 Chrome对我也是这样做的。它不漂亮,但是如果保存旧值,一个简单的if语句就可以解决问题。见http://jsfiddle.net/jG275/2/

    var oldVal;
    $(document).ready(function () {
        oldVal = $('#a100').val();
        $('#a100').change(function () {  
            if ($(this).val() != oldVal) {
                alert('change() called...new value: ' + $(this).val());
                oldVal = $(this).val();
            }
        });
    });

然而,这似乎不应该是必要的。但至少它解决了这个问题。