我的嵌入式设备上有一个小网页,上面有这样的代码:
<th width="310"
DHCP Relay:
</th>
<td> </td>
<td>
<% nvram_get("rg_dhcp_relay_enable""); %>
</td>
其中'nvram_get'返回1或0.我在这方面有两个问题:
(1)我想分别打印“ON”或“OFF”而不是1或0。可以在&lt;%...%&gt;中进行吗?像“if .. then ..”或者还有另一种方式?
(2)每当我重新加载页面时,此代码都能正常工作。同样在这个页面上我有选择列表,我希望上面的文字相应地改变为从列表中选择的项目。
所以我决定编写一个JavaScript函数并将其挂钩'onChange'事件。听起来合理吗?我只是不知道如何修改来自JS函数的文本。
Anyh的想法? 谢谢!
答案 0 :(得分:3)
1)添加到Aaron Digulla的答案中,如果使用Java,最好将Java代码移动到servlet并将方法调用的结果存储在属性中。然后你可以使用JSTL核心'out'标签
在JSP中做到这一点<td>
<c:out value="${relayEnable == 1 ? 'ON' : 'OFF'}">
</td>
这里'relayEnable'是保存方法调用结果的属性的名称。
2)如果你想在更改select元素时改变'td'的内容,你可以使用'onchange'事件进行选择,在事件处理程序中,你可以设置TD的innerHTML(由id引用。
<table>
<tr>
<td id="relayIndicator">
<c:out value="${relayEnable == 1 ? 'ON' : 'OFF'}">
</td>
</tr>
</table>
<select onchange="changeRelayIndicatorText(this.options[this.selectedIndex].value)">
<option value="1">One<option>
<option value="2">Two</option>
</select>
<script type="text/javascript">
function changeRelayIndicatorText(value) {
document.getElementById('relayIndicator').innerHTML = (value == 1) ? 'ON' : 'OFF';
}
</script>
答案 1 :(得分:0)
1:应该可以,但是你没有说出什么语言,所以我不能告诉你要使用的语法。对于Java(JSP),它将是:
<% if(nvram_get("rg_dhcp_relay_enable") == 1) {%>ON<%}else{%>OFF<%}%>
2:再次没有太多信息可以帮助你。您的方法听起来合理,具体取决于页面的工作方式。当您从列表中选择新值时,其中一些会提交表单。