我有这个jsp:
<table>
<% ArrayList<Something> monAM = (ArrayList<Something>) request.getAttribute("monAM");
Time t = new Time();
for (Prescription p : monAM) {
boolean asd= t.lastTaken(p.getDay(), p.getDateLastTaken());
%>
<tr>
<input type="hidden" value="<%=asd%>" name="display"/>
<td >
<div >
<input id="nottaken"type="checkbox" name="drinkmed" value="<%=p.getPrescriptionID()%>"
/>
<p id="taken" >Taken</p>
</div>
</td>
</tr>
<%}%>
</table>
Javascript代码:
<script>
var asd = document.getElementById("display").value;
$(document).ready(function() {
if(asd==="true"){
document.getElementById("taken").style.display="block";
document.getElementById("nottaken").style.display="none";
}else{
document.getElementById("nottaken").style.display="block";
document.getElementById("taken").style.display="none";
}
});
</script>
java代码和方法工作正常,但是我很难用javascript显示元素。如果布尔值asd为false,我想显示输入#nottaken,当asd为true时,我想显示
#taken。
答案 0 :(得分:1)
由于您在document.ready
之前检查隐藏字段的值,因此在document.ready
之前可以读取元素的值。检查document.ready
中隐藏字段的值。你也应该包括Jquery文件。试试这个
<script>
$(document).ready(function() {
var asd = document.getElementById("display").value;
if(asd==="true"){
document.getElementById("taken").style.display="block";
document.getElementById("nottaken").style.display="none";
}else{
document.getElementById("nottaken").style.display="block";
document.getElementById("taken").style.display="none";
}
});
</script>