2016-12-13 9 views
0

私はブートストラップモーダルでAjax呼び出しを実行し、コンテンツ(.modal-contents)を部分的なビューで置き換えて成功させています。続いて、以下のcenterModals関数を使用してモーダルの中心を設定します。デフォルトでチェックされているラジオボタンが部分ビューにあります。最初にAjaxの "done"メソッドで部分ビューをロードすると、それがチェックされます。 centerModals関数、特に$ clone.remove()関数を呼び出した後、ラジオボタンがチェックされていないか、centerModals関数の呼び出しを取り除くと、ラジオボタンがチェックされたままになります。誰もこの行動を説明できますか?DOMからクローンを削除した後にラジオボタンがチェックされていない

 //Ajax call from modal 
    $.ajax({ 
     url: viewCustomer.loadNewDiscountUrl, 
     type: 'POST', 
     datatype: 'json', 
     contentType: 'application/json; charset=utf-8', 
     data: JSON.stringify({ customerID: customerID }), 
     cache: false, 
     timeout: 20000 
    }).done(function (result) {  
     //Load partial view. The radiobutton in result is checked 
     $('#TransctionModalContent').html(result);    
     global.centerModals();    
    }); 


    //Script to center modal in global object 
    centerModals: function ($element) { 
    var $modals; 
    if ($element != null && $element.length) { 
     $modals = $element; 
    } else { 
     $modals = $('.modal'); 
    } 
    $modals.each(function (i) { 
     var $clone = $(this).clone().css('display', 'block').appendTo('body'); 
     var top = Math.round(($clone.height() - $clone.find('.modal-content').height())/2); 
     top = top > 0 ? top : 0; 
     $clone.remove(); 
     $(this).find('.modal-content').css("margin-top", top); 
    }); 
    } 
+0

ラジオボタングループには、選択済みとしてマークされたボタンが1つしかありません。 DOMにクローンを追加すると、クローンに選択されているものがあるため、元のクローンから 'selected'属性が削除されます –

+0

これは完璧な意味を持っています!迅速な対応に感謝します。私は今クローン操作の前にすべての選択されたラジオボタンを取得し、クローンが削除された後の状態を復元しています。 – user2615464

答えて

0

それは事実と何かを持っていること$(this).clone()コピー元のものと同じ名前を持つラジオボタン。したがって、あなたは2つのうちの1つをチェックし、もう1つをチェックしません。私の最高の推測では、$clone.remove();は何とかチェックされたものを取り除いています...しかし、デバッグをしなければ、私はそうは確信できません。

関連する問題