我希望在其他元素的基础上隐藏一个元素。
<table class="entry" >
<tr>
<th><s:text name="security.user.label.authentication-type" /></th>
<td><s:select
name="currentUser.authImpl"
onchange="DMAINC.module.security.User.removeExpirePassword('%{tabId}');"
list="@com.dmainc.web.common.security.AuthenticationType@values()"
headerKey=""
headerValue="[Please Select]"
listKey="classname"
id="authImpl_%{tabId}" /></td>
</tr>
<tr id="expireOnLogin" >
<th><s:text name="security.user.label.expire-password" /></th>
<td><s:checkbox id="expireOnLog" name="expireOnLogin"/></td>
</tr>
</table>
我的实施方式如下:
DMAINC.module.security.User.removeExpirePassword = function(tabId)
{
var auth = document.getElementById("authImpl_" + tabId).value;
if(auth=="com.dmainc.commons.security.service.jaas.JAASAuthenticator"){
var doc = document.getElementById("expireOnLogin");
doc.style.display = "none";
}
else{
alert(2);
var doc = document.getElementById("expireOnLogin");
doc.style.display = "";
}
};
它工作正常,但是当身份验证类型值来自db时它不会隐藏复选框,只有当我使用select更改时它才起作用,我想隐藏两个场景中的复选框,首先如果值是select来自db如果我从UI更改我也尝试使用if语句来隐藏但是当我更改select时它没有找到expireOnLogin id。
答案 0 :(得分:0)
如果您点击编辑内容,则会给出示例... Lore ...已消失并且textarea显示
<script>
function showStuff(id, text, btn) {
document.getElementById(id).style.display = 'block';
// hide the lorem ipsum text
document.getElementById(text).style.display = 'none';
// hide the link
btn.style.display = 'none';
}
</script>
&#13;
<td class="post">
<a href="#" onclick="showStuff('answer1', 'text1', this);
return false;">Edit</a>
<span id="answer1" style="display: none;">
<textarea rows="10" cols="115"></textarea>
</span>
<span id="text1">Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</span>
</td>
&#13;