1

如何创建一个 html 下拉列表,option disabled一旦个人选择了一个option value,查看了他们的选择并决定返回进行另一个option value选择,该列表就会刷新回标签。

html:

<form>
<select name="URL" onchange="window.location.href=this.form.URL.options[this.form.URL.selectedIndex].value">
<option disabled="disabled" selected="selected">Choose a County for Recycling Information.......</option>
<option value="LINK">Ingham County (Google Map / PDF)</option>
<option value="LINK">Clinton County (PDF)</option>
<option value="LINK">Eaton County (PDF)</option>
</select>
</form>

-select 名称标签将用户呈现到在同一窗口中打开的 URL。

<select name="URL" onchange="window.location.href=this.form.URL.options[this.form.URL.selectedIndex].value">

按照目前的情况,如果个人从列表中进行选择,查看他们的选择(在同一窗口中打开)并返回(返回到原始网页),下拉菜单不会恢复为:

<option disabled="disabled" selected="selected">Choose a County for Recycling Information.......</option>

但保留在option value标签选择上,除非他们刷新/重新加载浏览器窗口。

4

3 回答 3

1

基本上,你不能没有javascript。

我不知道你知道多少,所以我假设你没有 JavaScript 的先验知识。

以下应该可以满足您的要求。

如您所见,我已更改 onchange 属性以调用名为“ResetToDisabled”的 JavaScript 函数,该函数使用“this”关键字将 DropDown 列表作为参数传递。

<select name="URL" onchange="ResetToDisabled(this);">
    <option disabled="disabled" selected="selected">Choose a County for Recycling Information.......</option>
    <option value="LINK">Ingham County (Google Map / PDF)</option>
    <option value="LINK">Clinton County (PDF)</option>
    <option value="LINK">Eaton County (PDF)</option>
</select>
<script type="text/javascript">
    function ResetToDisabled(DropDown) {
        var TargetIndex = DropDown.selectedIndex;
        DropDown.selectedIndex = 0;
        window.location.href = DropDown.options[TargetIndex].value;
    }
</script>

这里发生的事情是,我正在创建一个名为“ResetToDisabled”的 javascript 函数,它接收一个对象(在这种情况下,我们可以假设它是一个下拉列表)作为参数。

此函数创建一个名为“TargetIndex”的临时变量,并将其值设置为下拉列表的选定索引。

然后它将下拉列表的选定索引设置为 0(第一个选项)。

然后它将执行您的代码行,您将在其中打开一个新网页。但是,由于您已将下拉菜单重置为第一个选项,因此当您单击返回时,它会记住该选项是已选择的选项。

我也觉得应该补充。看起来您正在尝试实现许多网站用于其菜单的相同行为;如果是这种情况,您可能需要搜索“CSS 下拉菜单”,因为如果您稍后尝试这样做,您会发现很难更改选择下拉菜单的外观。

于 2013-04-30T14:07:40.550 回答
0

你不需要为此使用jquery!

.html 文件;

<form>
<select name="URL" onchange="changeme(this)">
<option disabled="disabled" selected="selected">Choose a County for Recycling Information.......</option>
<option value="LINK">Ingham County (Google Map / PDF)</option>
<option value="LINK">Clinton County (PDF)</option>
<option value="LINK">Eaton County (PDF)</option>
</select>
</form>

.js 文件;

function changeme(mselect ) {
    for (var i = 0; i < mselect.options.length; i++) {
        if (mselect.options[i].selected == true) {
            mselect.options[i].setAttribute('disabled', 'disabled');
        }
        else {
            mselect.options[i].removeAttribute('disabled');
        }
    }
}
于 2013-04-30T13:59:15.297 回答
0

根据它们导航回页面的方式,您应该能够在页面加载时设置一些 Javascript 设置选定的索引。

YourHTMLElement.selectedIndex = 0;

但是我会注意到,因为它仍然选择了相同的值,听起来你正在导航回来,history.back();这可能不会执行通常的onload事件。

不过,我确实发现这里的答案对这样的问题很有帮助。它将允许触发 jQuery 的文档就绪事件,这意味着您可以将其链接起来以将 重置selectedIndex为 0。

于 2013-04-30T13:59:24.317 回答