2013-06-19 4 views

ответ

0

Приятные люди, которые сделали 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'); 
+0

Вы можете изучить проблему немного больше, просто отключив функциональность DNN, это не лучший способ сделать что-то в DNN. У меня есть флажки в моих модулях, и они отлично работают с функциональностью DNN, заменяющей их для UI. –

+0

Когда будет время, я еще раз посмотрю на это. Я согласен с тем, что это более или менее хак вместо реального решения. – Jeroen

0

У меня похожие проблемы.

В моем случае я использую диалог/всплывающее окно, и причина того, что этот флажок не работает, как представляется, является z-index, равным -1 (отрицательный).

ОДНАКО кажется, что z-индекс флажка не всегда установлен на -1.

Например, поскольку у меня есть в диалоговом окне (всплывающее окно), изначально индекс z установлен в -1 (что, похоже, работает). Когда я открываю диалог нажатием кнопки, индекс z устанавливается в 1001 (что также, похоже, работает).

Однако с помощью флажка, содержащегося на панели обновления, postback возвращает индекс z-индекса в -1 (что не работает, поскольку флажок находится под диалоговым окном).

В заключении - проверить, если г-индекс элемента, содержащего флажок (рекурсивно) больше, чем CheckBox г-индекс, так как это может быть причиной этого не работает (элементы без Z-индекса, кажется, для работы с флажком).

немного Hacky исправить: Я добавил некоторые JQuery OnLoad принести Z-индекс CheckBox в выше его родителей (в данном случае диалоговое окно JQuery)

Это позволит получить все входы с Z-индекс -1 внутри родительского элемента, и установить их Z-индекс 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); 
} 
+0

Только что отметил элемент z-index: -1 в моем элементе ввода. Я все еще использую хак, чтобы исправить это, и я не знаю, как обойти это изящно. – Jeroen

+0

Вы используете диалоговое окно, или элемент контейнера имеет более высокий индекс z? Я только что добавил jQuery onload, который ищет любой элемент с z-индексом -1 и делает его еще 1 чем элемент контейнера. –

+0

Да, я @ m.t.Беннет; Я взглянул на сгенерированный HTML, z-index моего dialogcontainer равен 1002 – Jeroen

2

добавить класс «normalCheckBox» на свой флажок и DNN будет игнорировать его. ej:

<input type="checkbox" class="normalCheckBox"> 
+0

этот флажок изменяется в следующем файле: 'Ресурсы \ Shared \ scripts \ dnn.jquery.js'. и, как сказал User2683036 с «normalCheckBox», вы можете остановить это поведение, это также работает с 'normalRadioButton' – domiSchenk