私はモーダルウィンドウを開く関数を持っています。最初にすべての入力フィールドを開くと編集可能です。しかし、モーダルウィンドウが閉じていて、それを再び開こうとすると、すべての入力フィールドは編集できません。彼らは無効にされていませんが、私はクリックすることでそれらに集中できません。私は、次を削除するとそれはのように思えるモーダルダイアログを閉じて入力フィールドを無効にする
:私はそれは以下
var fns = {
close: function() {
opts.returnValue = $dialog.returnValue;
$dialog = null;
opts.onClose();
if (opts.doPostBackAfterCloseCallback) {
postBackForm(opts.postBackElementId);
}
$frame.remove();
},
adjustWidth: function() { $frame.css("width", "100%");
}
};
とは何かを持って疑ってい
はEDIT
var $dialog = null;
jQuery.showModalDialog = function(options) {
var defaultOptns = {
url: null,
dialogArguments: null,
height: ''auto'',
width: ''auto'',
resizable: false,
scrollable: true,
onClose: function() { },
returnValue: null,
doPostBackAfterCloseCallback: false,
postBackElementId: null
};
var fns = {
close: function() {
opts.returnValue = $dialog.returnValue;
$dialog = null;
opts.onClose();
if (opts.doPostBackAfterCloseCallback) {
postBackForm(opts.postBackElementId);
}
$frame.remove();
},
adjustWidth: function() { $frame.css("width", "100%");
}
};
// build main options before element iteration
var opts = $.extend({}, defaultOptns, options);
var $frame = $(''<iframe id="iframeDialog" />'');
if (opts.scrollable)
$frame.css(''overflow'', ''auto'');
$frame.css({
''top'' : 0,
''padding'': 0,
''margin'': 0,
''padding-bottom'': 0
});
var $dialogWindow = $frame.dialog({
autoOpen: true,
modal: true,
width: opts.width,
height: opts.height,
resizable: opts.resizable,
overlay: {
opacity: 0.5,
background: "black"
},
close: fns.close,
resizeStop: fns.adjustWidth
});
$frame.attr(''src'', opts.url);
fns.adjustWidth();
$frame.load(function() {
if ($dialogWindow) {
var maxTitleLength = 50;
var title = $(this).contents().find("title").html();
if (title.length > maxTitleLength) {
title = title.substring(0, maxTitleLength) + ''...'';
}
$dialogWindow.dialog(''option'', ''title'', title);
}
});
$dialog = new Object();
$dialog.dialogArguments = opts.dialogArguments;
$dialog.dialogWindow = $dialogWindow;
$dialog.returnValue = null;
}
完全なコードです問題は解消されます。しかし、その後の要素はDOM
$frame.remove();
から削除されません。このリンクは
https://bugs.jqueryui.com/ticket/9122
私の問題を解決し
を解決し、私は前にダイアログを削除するには、これを追加しました:
$frame.attr("src", "about:blank");
とまでは何ですかドゥー単一の二重引用符ではなく単一引用符を使用しますか?すべての '' ''を '' '' '' '' '' '' '' 'に変更する必要があります – mplungjan
それはうまくいきませんでしたが、javascriptがhtmlにインライン展開されているのでそのように書かれていたと思います –