从JavaScript更改文本字段

时间:2010-08-11 07:55:15

标签: javascript html

我的嵌入式设备上有一个小网页,上面有这样的代码:

<th width="310"
DHCP Relay:&nbsp;&nbsp;
</th>
<td>&nbsp;&nbsp;</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的想法? 谢谢!

2 个答案:

答案 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:再次没有太多信息可以帮助你。您的方法听起来合理,具体取决于页面的工作方式。当您从列表中选择新值时,其中一些会提交表单。