我有一个用 ASP.NET 制作的网站,我把它变成了一个 DotNetNuke 模块。但是现在当我尝试检查复选框时它不起作用。
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,因为这可能是它不起作用的原因(没有 z-index 的元素似乎与复选框一起工作正常)。
一个 hacky 修复: 我添加了一些 jQuery onload 以将复选框的 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);
}