4

我正在尝试在 javascript 中创建一个函数,该函数将在我的注册表单中隐藏/显示特定的 div,具体取决于我的复选框的状态(选中与否)。这是我的功能:

 function doruc() {
    var elem = document.getElementById('powermail_fieldwrap_331');
        if (document.getElementById  ('powermail_field_doruovaciaadresa2_1').checked) {
        elem.display='block';
        } else {elem.display:none;}
}

它不工作。我正在检查和取消选中我的复选框,但没有任何反应。还有件事儿。我希望将该 div 初始化为隐藏。我应该把我的css这个吗?:

 #powermail_fieldwrap_331{
 display:none;
 } 

我将非常感谢任何建议。

4

4 回答 4

7

你可以使用

var elem = document.getElementById('powermail_fieldwrap_331');
document.getElementById('powermail_field_doruovaciaadresa2_1').onchange = function() {
    elem.style.display = this.checked ? 'block' : 'none';
};

演示


如果你想默认隐藏它,你可以使用#powermail_fieldwrap_331{display:none;}. 但如果你想确定,最好使用

var elem = document.getElementById('powermail_fieldwrap_331'),
    checkBox = document.getElementById('powermail_field_doruovaciaadresa2_1');
checkBox.checked = false;
checkBox.onchange = function doruc() {
    elem.style.display = this.checked ? 'block' : 'none';
};
checkBox.onchange();

演示

于 2013-11-01T20:33:39.653 回答
1

试试这个:

elem.style.display='block'
于 2013-11-01T20:31:39.847 回答
0

你应该这样写:

function doruc() {
var elem = document.getElementById('powermail_fieldwrap_331');
    if (document.getElementById ('powermail_field_doruovaciaadresa2_1').checked) {
    elem.style.display='block';
    } else {elem.style.display='none';}}

关于你的第二个问题,你可以写在 div 标签中style="display:none",也可以按照你说的做(为元素添加一个类)。

于 2013-11-01T20:36:11.567 回答
0

您正确使用 display: none; 最初隐藏您的 DIV。

至于您的复选框,请尝试删除 getELementById 和 ('powermail_field...

您还需要更改:

} else {elem.display:none;}

到:

} else {elem.display = 'none';}
于 2013-11-01T20:37:02.510 回答