JQuery动态创建表单:ie下select无法下拉(firefox正常)

HTML代码:
<div id="chosefund">
          <div class="chosediv">
                       <div class="fundsdiv">
                                    <select class="seriessel" id="fund_fundPerformance_fundCompany0">
                                        <%= this.GetFundCompanyOptionList("") %>
                                    </select>
                                    <select class="fundslist"  id="fund_fundPerformance_fund0">
                                        <option value="">請選擇基金名稱</option>
                                    </select>
                          </div>                                
                           <a class="fund_fundPerformance_addinco" href="http://yuxnet.blog.163.com/blog/#" style="cursor:pointer;background:url(../images/fund/addinco.gif) no-repeat;"></a>
                          <a class="fund_fundPerformance_delinco" href="http://yuxnet.blog.163.com/blog/#" style="cursor:pointer;background:url(../images/fund/delinco.gif) no-repeat;"></a>
         </div>
                        
 </div>

JS代码:
$(document).ready(function() {

    $("select.seriessel").change(function() {
        var sender = $(this);
        $.ajax({
            type: 'post',
            url: '../edm/GetData/GetFundOptionList.aspx',
            dataType: "text",
            data: { 'selectedValue': '', 'fundCompany': sender.val() },
            cache: false,
            async: false,
            success: function(options) {
                sender.next().hide();
                sender.next().html(options);
                sender.next().show();

            },
            complete: function(XMLHttpRequest, textStatus) {

            }
        });
    });



    // add or delete the fund of select
    var $addBtn = $('#chosefund a.fund_fundPerformance_addinco');
    var $delBtn = $('#chosefund a.fund_fundPerformance_delinco');
    var $cloneDiv = $('#chosefund > div.chosediv');
    var total = 4;
    var i = 1;
    var copyElement = "";

    $addBtn.click(function() {
        if (i < total) {
            copyElement = $(this).parent('div.chosediv').clone(true);
            copyElement.find("select.seriessel").attr("id", "fund_fundPerformance_fundCompany" + i);
            copyElement.find("select.fundslist").attr("id", "fund_fundPerformance_fund" + i);
            copyElement.find("select.fundslist").empty();
            copyElement.find("select.fundslist").append("<option value=''>請選擇基金名稱</option>");
            $("#chosefund").append(copyElement);
            i++;
            return false;
        }
    });

    $delBtn.click(function() {
        if (i > 1) {
            $(this).parent("div.chosediv").remove();
            i--;
            return false;
        }
    });

});

解决方案:
在填充选项前先隐藏下拉框,填充后再显示下拉框就可以了,详见上面红色字体的代码。
百度发现类似问题,有网友解决说:

“最终发现应该是ie8把一些可视化的东西缓存了,也就是在外观不变化的情况下,下拉框下拉出来的部分不变。

在清空语句前后增加了.hide() 和.show()就解决了,没发现闪烁的情况,控件多了不知道会不会有闪烁,真是……无语了。”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值