我对以下问题摸不着头脑。
我有一个复选框。如果它被勾选,我会显示一个textarea,通过以下Javascript删除样式。在每个页面加载时,textarea都隐藏在textarea标记之间加载的数据。当用户点击它时,它应该出现,它不会做!当我使用Firebug或Chrome进行检查时,我会看到数据应该在哪里。在Firebug中,如果我添加class =""它会在运行中出现,但是当我将其添加到离线状态时,它将从页面加载中显示出来,它不会出现。
抱歉有点神秘,此页面是更大的嵌入式网页的一部分,无法在互联网上找到。
你有什么想法吗?
HTML code:
<tr id="my_tr" style="display: none;">
<td colspan="2">
<div id="my_div">
<textarea cols="25" rows="3" name="my_textarea">initial data to be shown</textarea>
</div>
</td>
</tr>
JS代码:
function show_hide_my_textarea() {
var my_checkbox = $(tick_box_ref);
var my_tr = document.getElementById("my_tr");
if (my_checkbox.checked == true) {
my_tr.style.display = '';
} else {
my_tr.style.display = 'none';
}
}
更新: 对不起,我没有正确解释。 textarea本身出现,但它仍然是空的。
答案 0 :(得分:2)
if (my_checkbox.checked == true) {
my_tr.style.display = 'table-row';
} else {
my_tr.style.display = 'none';
}
将显示设置为无效,请尝试将其设置为table-row
。
https://developer.mozilla.org/en/CSS/display
答案 1 :(得分:2)
不是将display
设置为空,而是将其设置为table-row
:
my_tr.style.display = 'table-row';
答案 2 :(得分:1)
my_tr.style.display = 'block';
应该做的伎俩
答案 3 :(得分:1)
放入第一个if:
my_tr.style.display = 'block';
而不是将其留空,如果它不起作用,请粘贴其余代码:)
如果是display:none,则需要指定back display:block以便再次显示,否则它将保持隐藏状态。