2016-08-24 82 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' },