2012-01-27 77 views
0

在IE7中遇到了一些麻烦。 IE8,Chrome,Firefox都能正常工作,但IE7不会执行此代码。JQuery IE Select Issue

这里的HTML选择(摘录)

<form name="frmCat" action="index3.html" method="get"> 
      <select id="mySelect" onChange="onchange1((this).options[this.selectedIndex].value);"> 
       <option>Select a Category</option> 
      </select> 

这里是运行在其他浏览器(AJAX代码段)就好了JavaScript的:

function onchange1(catname){ 
    //alert(catname); 
      $.ajax({ 
      type: "GET", 
      url: "xml/categories.xml", 
      dataType: "xml", 
      success: function(xml) { 
       var div = $('#epcf-wrap'); 
       var findval = "Cat" 
       $(xml).find('Cat').each(function(){ 
        var cval = $(this).attr('name'); 
              if(catname === cval){ 
              // I bet there is an easier way to do this 
              var xmlArr = []; 
              var xml_EPCF_1_1  = $(this).find('EPCF_1_1').text(); 

我读过,有一些类似的问题瓦特/ IE7和AJAX,我已经看到了一些提示,应该有一些形式的MSIE检查正在完成,但我是JavaScript和JQuery的新手,没有发现任何我发现我在做什么非常清楚这里。

想法?

+0

哪部分不工作?错误信息? – 2012-01-27 05:10:25

+0

如果要显示整个函数,那么在传递给'$ .ajax()'的对象末尾不会出现尾随逗号,即在关闭'}'之前的逗号? IE不喜欢这样(坦率地说我同意它),但其他浏览器不介意。 “不会执行”是什么意思?你有错误吗?你的函数是否在它的'catname'参数中得到了正确的值(如你的注释'alert(catname)')? – nnnnnn 2012-01-27 05:15:46

+0

没有错误信息。感谢这篇文章,但我现在知道如何把一个错误处理程序 - 我现在正在尝试。完整的代码完全太大而无法在这里发布,但可以在http://mdihosting.com/5/Projects/VRACC/index3.html – ChadM 2012-01-27 05:21:33

回答

1

你可以不使用内嵌的JavaScript。使用jQuery方式。

$('#mySelect').change(function(){ 
    //You can get the select value by the way below. 
    var catname = $(this).val(); 
    $.ajax({ 
     type: "GET", 
     url: "xml/categories.xml", 
     dataType: "xml", 
     success: function(xml) { 
      var div = $('#epcf-wrap'); 
      var findval = "Cat" 
      $(xml).find('Cat').each(function(){ 
       var cval = $(this).attr('name'); 
       if(catname === cval){ 
        //.... 
       } 
      } 
     } 
    }); 
}); 
+0

如果我这样做,我怎么能通过选择变量'catname'?如何处理(this).options [this.selectedIndex] .value grab?等待 - 我看到了:(我对此有了隧道视野 – ChadM 2012-01-27 05:28:54

+0

刚刚尝试过 - 没有喜悦,它也阻止了它在firefox中的工作 – ChadM 2012-01-27 05:33:36

+0

@ChadM你是否在html中删除了代码'onChange = ...'? – xdazz 2012-01-27 05:36:35

0

在IE7中使用ajax没有问题。

请向ajax调用添加一个错误处理程序,并查看返回的错误消息。

也确保你的方法得到正确的参数。

最后,

$("#myselect").change(handler(event)) 

听起来有点清洁。 这是在jQuery文档中: http://api.jquery.com/change