Javascript粘性依赖下拉列表

时间:2010-09-25 01:14:58

标签: javascript

我在几个小时后问了一个关于这个问题的问题,并注意到这仍然无法正常工作。

如果他们选择了三个选项中的两个,我需要向用户显示一个文本框。当用户单击提交按钮时,下拉列表需要保持所选的值。我可以用我的应用程序代码执行此操作,但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>

1 个答案:

答案 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>