我在几个小时后问了一个关于这个问题的问题,并注意到这仍然无法正常工作。
如果他们选择了三个选项中的两个,我需要向用户显示一个文本框。当用户单击提交按钮时,下拉列表需要保持所选的值。我可以用我的应用程序代码执行此操作,但javascript失败的地方是隐藏的div,即使它具有依赖于所显示的文本框的值,也将不再显示。这是因为寻呼机刷新。
这是我的代码。有人可以告诉我需要更改的内容,以便在刷新后文本框会重新出现如果选择了“NONE”以外的值吗?
function toggleTbox(chosen)
{
var hide = document.getElementById("otherValues");
if (chosen == 'PHASE1') {
hide.style.display = 'block';
} else if(chosen == 'PHASE2') {
hide.style.display = 'block';
} else {
hide.style.display = 'none';
}
}
<tr>
<td>
<label for="sales">Sales:</label><br />
<select name="sales" onchange="toggleTbox( document.salesEntry.salesEntry.options[ document.salesEntry.rxGateway.selectedIndex ].value );">
<option value="[server]">[server]</option>
<option value="NONE">NONE</option>
<option value="PHASE1">PHASE1</option>
<option value="PHASE2">PHASE2</option>
</select>
</td>
<td>
<div id="otherValues" style="display:none">
<label for="salesNumber">Sales No</label><br />
<input type="text" name="salesNumber" id="salesNumber" value="[server]" />
</div>
</td>
</tr>
答案 0 :(得分:1)
只需添加脚本调用,以确保在页面加载时调用切换以初始化div可见性。
<tr>
<td>
<label for="sales">Sales:</label><br />
<select name="sales" onchange="toggleTbox( document.salesEntry.salesEntry.options[ document.salesEntry.rxGateway.selectedIndex ].value );">
<option value="[server]">[server]</option>
<option value="NONE">NONE</option>
<option value="PHASE1">PHASE1</option>
<option value="PHASE2">PHASE2</option>
</select>
</td>
<td>
<div id="otherValues" style="display:none">
<label for="salesNumber">Sales No</label><br />
<input type="text" name="salesNumber" id="salesNumber" value="[server]" />
</div>
<script type="text/javascript">
toggleTbox( document.salesEntry.salesEntry.options[document.salesEntry.rxGateway.selectedIndex ].value );
</script>
</td>
</tr>