我的嵌入式设备上有一个小网页,其中包含以下代码:
<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。是否可以在 <%...%> 中执行类似“if .. then ..”的操作,或者还有其他方法吗?
(2) 每当我重新加载页面时,此代码都可以正常工作。另外,在此页面上,我有选择列表,我希望上面的文本能够根据从列表中选择的项目进行相应更改。
所以我决定编写一个 JavaScript 函数并将其挂接到“onChange”事件上。听起来有道理吗?我只是不知道如何从 JS 函数修改 .. 中的文本。
有什么想法吗? 谢谢!
最佳答案
1) 添加 Aaron Digulla 的答案,如果您使用 Java,最好将 Java 代码移至 servlet 并将方法调用的结果存储在属性中。然后您可以在 JSP 中使用 JSTL 核心“out”标记执行此操作,
<td>
<c:out value="${relayEnable == 1 ? 'ON' : 'OFF'}">
</td>
这里的“relayEnable”是保存方法调用结果的属性的名称。
2) 如果您想在更改 select 元素时更改此 'td' 的内容,您可以使用 select 的 '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>
关于javascript - 从 JavaScript 更改文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3456376/