DotNetNuke モジュールに変換した ASP.NET で作成されたサイトがあります。しかし、チェックボックスをチェックしようとすると、機能しません。
3 に答える
クラス「normalCheckBox」をチェックボックスに追加すると、DNN はそれを無視します。ej:
<input type="checkbox" class="normalCheckBox">
DotNetNuke を作成した親切な人々には、特別な種類のユーモアがあります。私のサイトで使用されているチェックボックスが DotNetNuke によって隠され、チェックボックスの画像に置き換えられていることがわかりました。この背後にある理由は私には不明です。
HTMLを見てください:
<label style="display: inline-block;">
<input type="checkbox" id="copyAllSettingsCheckBox" name="copyallcheckbox" title="Copy all settings" style="position: absolute; z-index: -1; visibility: hidden;">
<span class="dnnCheckbox">
<span class="mark">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAMAAAAoyzS7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFAAAAAAAApWe5zwAAAAF0Uk5TAEDm2GYAAAAMSURBVHjaYmAACDAAAAIAAU9tWeEAAAAASUVORK5CYII=">
</span>
</span>
Include any additional settings.
</label>
これを修正するために、以下に示すコードを使用しました。これにより、DotNetNuke によって追加されたものが効果的にクリーンアップされます。JavaScriptの最後に置くだけです。
$('.dnnCheckbox').remove();
$(':checkbox').removeAttr('style');
私も同様の問題を抱えています。
私の場合、ダイアログ/ポップアップを使用していますが、チェックボックスが機能しない原因は、z-index が -1 (負の値) であるようです。
ただし、チェックボックスの z-index が常に -1 に設定されているわけではないようです。
たとえば、私はダイアログ (ポップアップ) ボックスに私のものを持っているので、最初は z-index が -1 に設定されています (これは機能しているようです)。ボタンをクリックしてダイアログを開くと、z-index が 1001 に設定されます (これも機能しているようです)。
ただし、チェックボックスが更新パネルに含まれている場合、ポストバックはチェックボックスの z-index を -1 に戻します (チェックボックスがダイアログ ボックスの下にあるため、これは機能しません)。
結論として、チェックボックスを (再帰的に) 含む要素の z-index がチェックボックスの z-index より大きいかどうかを確認してください。 )。
少しハッキーな修正: jQuery オンロードを追加して、チェックボックスの z-index を親 (この場合は jQuery ダイアログ) の上に移動しました。
これにより、親要素内で z-index が -1 のすべての入力が取得され、親要素の上に z-index 1 が設定されます。
//the id being the parent element that has the higher z-index
function FixInputZIndex(id){
var element = $('#' + id);
$('#' + id + ' input').filter(function () { return $(this).css('z-index') < 0; }).css('z-index', element.css('z-index') + 1);
}