Javascript 显示:无对标签无效
我为用户提供了两种文本输入方式——通过输入文本字段,或从下拉菜单中选择预定义文本。Javascript控制哪一个是可见的。 我有这两种输入法和它们对应的两个标签:Javascript 显示:无对标签无效,javascript,html,Javascript,Html,我为用户提供了两种文本输入方式——通过输入文本字段,或从下拉菜单中选择预定义文本。Javascript控制哪一个是可见的。 我有这两种输入法和它们对应的两个标签: <h:form id="test"> <div> <h:outputLabel id="label_1" value="Your text:" style="display:block" /> <h:inputText id="txt" value="#{myform.inputTex
<h:form id="test">
<div>
<h:outputLabel id="label_1" value="Your text:" style="display:block" />
<h:inputText id="txt" value="#{myform.inputText}" style="display:block" />
<h:outputLabel id="label_2" value="Choose text:" style="display:none" />
<h:selectOneMenu id="drop" value="#{myform.inputText}" style="display:none">
<f:selectItem itemValue="11" itemLabel="Preselected text 1" />
<f:selectItem itemValue="22" itemLabel="Preselected text 2" />
</h:selectOneMenu>
</div>
</h:form>
因此,它要么是label_1+txt要么是label_2+drop
问题是:当页面加载时,只有标签1+txt可见。不幸的是,标签1、标签2和txt是可见的
为什么drop的定义style=“display:none”有效,而label_2的相同定义无效?隐藏label
function Hide(id) {
document.getElementById(id).style.visibility = "hidden";
}
Hide('label_1');
function Show(id) {
document.getElementById(id).style.visibility = "visible";
}
Show('label_1');
显示标签
function Hide(id) {
document.getElementById(id).style.visibility = "hidden";
}
Hide('label_1');
function Show(id) {
document.getElementById(id).style.visibility = "visible";
}
Show('label_1');
解决方案是在主体中的脚本中添加jQuery块
$(document).ready(function() {
$('[id$=label_2]').hide();
$('[id$=drop]').hide();
});
您是否检查了JavaScript是否被执行/页面上是否存在JavaScript错误?你能提供一个吗?那是什么样的标记?一定是你的代码错误。通过直接键入document.getElementById('label_2').style.display=“无”来检查它控制台上的代码>。选择元素的默认显示为内联块,标签的默认显示为内联。在“无”和“”(空字符串)之间切换要好得多,这样当不是“无”时,元素采用它们的默认或级联显示值?查看源代码,是服务器端标记转储了您的样式标记吗?我尝试了
,但标签2仍在开头显示。outputLabel
是否与salesforce
或jsf
相关?可见性和显示是两个不同的方面。