2012-01-27 86 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