2016-08-24 84 views
0

我有一個下拉,其中有一個'點擊'事件,我打電話休息服務,並更新下拉選項中使用jQuery的選項,所以問題是,選項沒有得到更新在IE中。它在鉻&其他人可以正常工作。IE下拉不刷新點擊事件

示例代碼

 <select class="dropdown"> 
      <option value="1">Column1</option> 
      <option value="2">Column2</option> 
     </select> 

     $(.dropdown).click(function() { 

      var $dropdown = $(this); 
      var contrId = $(this).attr('id'); 

      var selectedVal = $(this).val(); 
      $($dropdown).empty(); 

      $.ajax({ 
       url: '@Url.Content("~/FakeAPI/GETDATA")', 
       dataType: "json", 
       method: 'POST', 
       data: { 'id': '10' }, 
      }).done(function (data) { 
       // Clear drop down list 
       $($dropdown).empty(); 
       // Fill drop down list with new data 

       var $option = $("<option />"); 
       $option.attr("value", '').text('Select Column'); 

       $($dropdown).append($option); 

       $(data).each(function() { 
        // Create option 
        var $option = $("<option />"); 
        // Add value and text to option 

        $option.attr("value", this.Text).text(this.Value); 
        if (selectedVal == this.Text) { 
         $option.attr("selected", "selected"); 
        } 
        // Add option to drop down list 
        $($dropdown).append($option); 

       }); 
      }); 
     }); 
    } 

任何建議將是有益的。

+2

用途改變,而不是點擊 – epascarello

+0

@epascarello不能這樣做,因爲我想更新調用下拉菜單的選項,這樣我纔可以選擇一個選項 – Charles

+0

'$(下拉)'必須是'$(」下拉列表「)' – Justinas

回答

0

中即9,10和11工作測試

$(document).ready(function() { 
      $(".dropdown").click(function() { 
       var $dropdown = $(this); 
       var contrId = $(this).attr('id'); 
       var selectedVal = $(this).val(); 
       $($dropdown).empty(); 
       $.ajax({ 
        url: '@Url.Content("~/FakeAPI/GETDATA")', 
        dataType: "json", 
        method: 'POST', 
        data: {'id': '10'}, 
       }).done(function (data) { 
        // Clear drop down list 
        $($dropdown).empty(); 
        // Fill drop down list with new data 

        var $option = $("<option />"); 
        $option.attr("value", '').text('Select Column'); 
        $($dropdown).append($option); 
        $(data).each(function() { 
         // Create option 
         var $option = $("<option />"); 
         // Add value and text to option 

         $option.attr("value", this.Text).text(this.Value); 
         if (selectedVal == this.Text) { 
          $option.attr("selected", "selected"); 
         } 
         // Add option to drop down list 
         $($dropdown).append($option); 
        }); 
       }); 
      }); 
     }); 
0

我認爲這個問題是由錯誤的IE緩存請求。將cache:false添加到您的ajax請求中,並且可能通過在請求結束時添加_={timestamp}來解決問題。

$.ajax({ 
     cache:false, 
     url: '@Url.Content("~/FakeAPI/GETDATA")', 
     dataType: "json", 
     method: 'POST', 
     data: { 'id': '10' },