私はブートストラップモーダルで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);
});
}
ラジオボタングループには、選択済みとしてマークされたボタンが1つしかありません。 DOMにクローンを追加すると、クローンに選択されているものがあるため、元のクローンから 'selected'属性が削除されます –
これは完璧な意味を持っています!迅速な対応に感謝します。私は今クローン操作の前にすべての選択されたラジオボタンを取得し、クローンが削除された後の状態を復元しています。 – user2615464