我试图通过使用以下方法隐藏Struts 2中的标签和字段
<s:textfield style="display:none;" label="test">
它只隐藏文本框而不隐藏标签。
<s:form theme="simple">
<div style="display:none;" id="test">
<s:label>test</s:label>
<s:textfield>
</div>
它隐藏了标签和字段。
无论如何在Struts2中不使用theme
隐藏标签和文本字段?
我正在寻找这个,因为我正在尝试向现有表单添加新字段。如果我使用theme
,那么我现有的所有样式都会受到干扰。
答案 0 :(得分:0)
您正在创建隐藏字段并为其指定一些文本值。即隐藏的文本字段 而不是你可以直接使用下面的标记在Struts2中创建一个隐藏字段:
<s:hidden name="url" label="" value="http://google.co.in/" />
<s:hidden>
呈现一个隐藏类型的HTML输入元素,由ValueStack中的指定属性填充。
Hidden field Documentation包含<s:hidden>
支持的所有参数的列表。您还可以在其中找到label
作为属性。
另一种方法是,您可以更改/切换 文本字段/标签的可见性属性,具体取决于您在评论中使用查询的下拉框值使用Javascript / jQuery的。默认情况下,visibilty值为visible
,因此无需添加默认值。
<s:textfield name="id" label="Product Id" cssStyle="visibility:hidden" />
要隐藏<s:label>
,请使用以下代码:
<s:label cssStyle="visibility:visible" id="productLabel"/>
<!--use the below Javascript code in your toggling logic-->
<script type="text/javascript">
document.getElementById("productLabel").style.visibility ="hidden";
</script>
此代码将在HTML中生成,您可以使用与text-field相同的逻辑来隐藏此标签:
<label style="visibility:hidden" id="productLabel"/>
您的问题是隐藏字段和标签 <s:textfield label="destinationterminal">
,
<s:form>
<div style="display: none;" id="test1">
<s:textfield id="destinationTerminal1" label="DESTINATION TERMINAL"/>
</div>
</s:form>
使用以下JQuery代码:
$('label[for=destinationTerminal1], input#destinationTerminal1').hide();
答案 1 :(得分:0)
Columbus'Egg 是:仅对标记使用theme
,而不是整个表单:
<s:form>
<div style="display:none;" id="test">
<s:label>test</s:label>
<s:textfield theme="simple">
</div>
这不会影响其他任何事情。
答案 2 :(得分:0)
我在我使用的Struts2测试应用程序上运行了一个假数据演示:
Struts JSP:
<s:form>
<s:select label="Reason"
headerKey="-1" headerValue="Select a Reason"
list="#{'1':'Site Bug', '2':'Other'}"
name="reason"
value="0" />
<s:textfield name="textField" label="Other"></s:textfield>
</s:form>
JavaScript演示:
$('select[id=_reason]').change(function() {
var value = this.options[this.selectedIndex].value;
$('label[for=_textField]').hide();
$('input[id=_textField]').hide();
if (value && $.trim(value) === '2') {
$('label[for=_textField]').show();
$('input[id=_textField]').show();
}
}).trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="" action="" method="post">
<label for="_reason">Reason</label>
<select name="reason" id="_reason">
<option value="-1">Select a Reason</option>
<option value="1">Site Bug</option>
<option value="2">Other</option>
</select>
<br>
<br>
<label for="_textField">Other</label>
<input type="text" name="textField" value="" id="_textField">
</form>
您必须根据您的表单调整id
值,并根据您选择的选项值调整(value && $.trim(value) === '2')
该行。