2010-08-10 19 views
0

我在我的网站中有这样一个组合框,我希望它在用户更改后立即加载一些内容。这是一个简单的有我的国家的每个国家,检查出来:http://jsfiddle.net/tzvyX/.change()在IE中不起作用<select>标签

它发生在IE中,.change()方法不起作用,我不知道该怎么办来解决它。也许还有其他一些事件监听器?

+1

您的jsfiddle在实际的IE7/8以及IETester模拟IE6/7/8中的工作正常。我会说,你的问题在别的地方。 – BalusC 2010-08-10 20:48:19

回答

0

是的,这是一个已知的问题。您必须观察点击事件,并手动检查值是否与以前的值不同。

1

编辑:这也是来自同一源:

BMAN:为了得到变化()在IE工作,解决方法是: $(element).change(function() { doChange(); }).attr("onchange", function() { doChange();});请记住,doChange()函数不应该使用$(this)。

很难说没有一些示例代码会出现什么问题,但这里是jQuery网站中的一个示例,它在IE中工作。 SRC:http://api.jquery.com/change/

<html> 
<head> 
    <style> 

    div { color:red; } 
    </style> 
    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
</head> 
<body> 
    <select name="sweets" multiple="multiple"> 
    <option>Chocolate</option> 
    <option selected="selected">Candy</option> 

    <option>Taffy</option> 
    <option selected="selected">Caramel</option> 
    <option>Fudge</option> 
    <option>Cookie</option> 

    </select> 
    <div></div> 
<script> 
    $("select").change(function() { 
      var str = ""; 
      $("select option:selected").each(function() { 
       str += $(this).text() + " "; 
       }); 
      $("div").text(str); 
     }) 
     .change(); 
</script> 

</body> 
</html> 
0

嗯我有改变IE的问题,但只有单选按钮和onchange。这里是我使用的一些代码,在IE中有效。

$('#NaviDDL').change(function() { 
    var id = $('#NaviDDL option:selected').val(); 
    if (id == 'default') return true; 
    location.href=id; 
}); 

我想诀窍是避免在这个实例的IE中使用$(this)。请尝试以下操作:

$('#sctEstado').live('change', function() { 
     $('.small-loading').show(); 
     $('.conteudo').load('onde_encontrar.representante.php?id='+$("#sctEstado option:selected").val()); 
    });​