0

ドロップダウン リストで選択した番号に従って、フォーム要素のブロックを複製している IE で問題が発生しています。ドロップダウン リストで 3 が選択されている場合は、質問のブロックを繰り返し、各ブロックに一意になるように name 属性を操作します。これは Chrome や FF などでは正常に機能しますが、IE7 や IE8 では機能しません。

編集、それはIE7とIE8に固有であることが判明しました:ここにjsfiddleがあります

ここに私のコードがあります.IEに問題があることが知られていることはありますか? 現在発生しているのは、表示されるはずの各ブロックの代わりに IE が「null」を表示することだけです。助けてくれてありがとう。

    // Dropdown select
    $('#quantity').live("change", function(){

        $('.questions_clonable:not(:first)').remove();

        // Get value of selection
        var num = $(this).val();

        var cloned_el = $('.questions_clonable').clone();   

        if (num > 1)
        {  
            for (var i = 1; i < num; i++)
            {
                // Assign cloned block to new var
                var new_block = cloned_el;  

                // Bit of a workaround needed to clone properly, reiterating class name
                $('.multiple_questions_container').append('<span class="questions_clonable hidden">'+new_block.html()+'</span>');

            }   
        }
    });

フォーム要素は、次のようにスパンでラップされます。

<span class="questions_clonable hidden">
4

1 に答える 1

0

cloned_el を使用してhtmlを取得しているだけの場合は、代わりに

var cloned_el = $('.questions_clonable').clone();   

その後

var new_block = cloned_el;

new_block.html() を呼び出すには、次のようにします。

var new_block_html = $('.questions_clonable').html(); 

その後、new_block_html を参照するだけです。

マークアップも投稿できる場合は、ID があると明らかにエラーが発生するため、役立つ場合があります。

$.live() は現在、change イベントをサポートしていません: 現在サポートされていません: blur、focus、mouseenter、mouseleave、change、submit docs.jquery.com/Events/live

代わりに livequery を使ってみてはいかがでしょうか? docs.jquery.com/Plugins/livequery

編集 - 代わりに、.live()、デモではなく.on()イベントを使用してみてください

于 2012-11-07T10:11:55.670 に答える