Javascript 如何在html中隐藏标签
我有一段代码,它依赖于动态驱动器中的javascript: 它是一个表单依赖关系管理器。将根据您从显示的表单中选择的内容显示或隐藏元素: 我不知道为什么,但如果我改变代码:Javascript 如何在html中隐藏标签,javascript,html,Javascript,Html,我有一段代码,它依赖于动态驱动器中的javascript: 它是一个表单依赖关系管理器。将根据您从显示的表单中选择的内容显示或隐藏元素: 我不知道为什么,但如果我改变代码: <td> <label>ID Number<input type="checkbox" name="id" class="DEPENDS ON info BEING student"></label> </td>
<td>
<label>ID Number<input type="checkbox" name="id" class="DEPENDS ON info BEING student"></label>
</td>
</tr>
身份证号码
为此:
<td>
<input type="checkbox" name="id" class="DEPENDS ON info BEING student"><label>ID Number</label>
</td>
</tr>
身份证号码
注意:我在这里做的唯一更改是将标签从复选框的左侧转移到右侧,以便它们看起来更好。
但当我这么做的时候。即使我还没有单击使其可见的按钮(但没有复选框),标签也将可见
当我点击这个按钮时,这是唯一一次复选框出现在标签的左侧
复选框正常,但标签不正常。javascript工作正常。
我该怎么做才能使复选框和标签一起使用?将
class=“dependens depens info BEING student”
添加到我认为最简单的解决方案是将
标记放在标记前面,然后将文本移到其右侧:
<td>
<label><input type="checkbox" name="id" class="DEPENDS ON info BEING student">ID Number</label>
</td>
</tr>
看起来表单依赖项脚本希望表单中包含HTML
<label>ID Number<input type="checkbox" name="id" class="DEPENDS ON info BEING student"></label>
在FormManager.js中,将其添加到showEl()
和hideEl()
(在setupDependencies()
中)的末尾:
var id=this.id,labels=document.getElementsByTagName('label'),l=labels.length,label,i;
对于(i=0;i
它应该可以工作。根据为输入指定标签,您必须遵循本说明
<FORM action="..." method="post">
<P>
<LABEL>
First Name
<INPUT type="text" name="firstname">
</LABEL>
<LABEL>
<INPUT type="text" name="lastname">
Last Name
</LABEL>
</P>
</FORM>
名字
姓
该条包括以下案文:
要隐式地将标签与另一个控件关联,控件元素必须位于label元素的内容内。在这种情况下,标签只能包含一个控件元素。标签本身可以放置在相关控件之前或之后
请注意,当一个表格用于布局时,标签在一个单元格中,其关联控件在另一个单元格中,不能使用此技术
当标签元素接收到焦点时,它将焦点传递给其关联的控件。有关示例,请参见下面关于访问键的部分
标签可由用户代理以多种方式呈现(例如,视觉、语音合成器读取等)
因此,您必须遵循说明,说明是否清楚?需要澄清您的示例。看起来您做的不仅仅是“将标签从复选框的左侧转移到右侧”。这只是一个示例,我编辑了它。这实际上不会将标签与复选框关联,因此单击标签也会切换复选框。@trey:显然,也应该正确使用for
属性。但是,这并不能回答问题。我使用时仍然可以看到标签ID号this@user225269当前位置将SLaks答案合并到我的解决方案中应该可以解决这个问题。我认为我刚才添加的解决方案更简单,也应该有效。我认为这是解决这个问题的最简单的解决方案,谢谢
<input type="checkbox" id="id" "name="id" class="DEPENDS ON info BEING student"><label for="id">ID Number</label>
var id = this.id, labels = document.getElementsByTagName('label'), l = labels.length, label, i;
for (i = 0; i < l; i++) {
label = labels[i];
if (label.htmlFor == id) {
label.style.display = 'none'; // 'none' for hideEl, '' for showEl
}
}
<FORM action="..." method="post">
<P>
<LABEL>
First Name
<INPUT type="text" name="firstname">
</LABEL>
<LABEL>
<INPUT type="text" name="lastname">
Last Name
</LABEL>
</P>
</FORM>