清除页面退出时的下拉 select 值,因此后退按钮 return 可能会重新 select
Clearing drop-down select value on page exit so back button return may reselect
我基本上是在这里回答问题,但也许有人有其他想法。您可以使用 onpopstate 函数,但我发现这更容易处理并且跨浏览器兼容,即使是旧浏览器也是如此。
我有一个由数据库查询填充的下拉 select 框。在这种情况下,它只找到了一个相关城市。选择那个城市,将用户带到另一个页面,然后按下后退按钮,returns 用户进入页面,selection 仍然处于 selected 状态,这阻止了它免于再次 selected,除非先制造另一个 selection。所以我在离开页面之前添加了一个 onClick 事件来更改 Selected 默认值。
HTML
<div>
<select class="DropList" name="CitySelect" id="CitySelect"
onchange="if(options[selectedIndex].value){location = options[selectedIndex].value}"
onclick="GetSelect()">
<option value="" selected>Select City</option>
<option value="city.php?s=Montana&cn=Yellowstone&CalNav=0&c=Billings">Billings</option>
</select>
</div>
JavaScript
<script type="text/javascript">
function GetSelect()
{
document.getElementById('CitySelect').value = "";
}
</script>
监听点击事件并不理想,原因如下:
- 当您单击 select 打开它时触发它,而不是当您实际 select 一个选项时触发。因此,当您打开 select 时,您的代码会清除该值,这会导致一些抖动。
- 如果您使用键盘 select 一个值,则不会触发。
所以我建议使用模糊事件:
$('#CitySelect').on('blur', (e) => (e.target.value = ''));
在 select 输入该值后,select 字段仍将具有新值,但一旦您离开该字段(“模糊”它),该值就会重置。
我基本上是在这里回答问题,但也许有人有其他想法。您可以使用 onpopstate 函数,但我发现这更容易处理并且跨浏览器兼容,即使是旧浏览器也是如此。
我有一个由数据库查询填充的下拉 select 框。在这种情况下,它只找到了一个相关城市。选择那个城市,将用户带到另一个页面,然后按下后退按钮,returns 用户进入页面,selection 仍然处于 selected 状态,这阻止了它免于再次 selected,除非先制造另一个 selection。所以我在离开页面之前添加了一个 onClick 事件来更改 Selected 默认值。
HTML
<div>
<select class="DropList" name="CitySelect" id="CitySelect"
onchange="if(options[selectedIndex].value){location = options[selectedIndex].value}"
onclick="GetSelect()">
<option value="" selected>Select City</option>
<option value="city.php?s=Montana&cn=Yellowstone&CalNav=0&c=Billings">Billings</option>
</select>
</div>
JavaScript
<script type="text/javascript">
function GetSelect()
{
document.getElementById('CitySelect').value = "";
}
</script>
监听点击事件并不理想,原因如下:
- 当您单击 select 打开它时触发它,而不是当您实际 select 一个选项时触发。因此,当您打开 select 时,您的代码会清除该值,这会导致一些抖动。
- 如果您使用键盘 select 一个值,则不会触发。
所以我建议使用模糊事件:
$('#CitySelect').on('blur', (e) => (e.target.value = ''));
在 select 输入该值后,select 字段仍将具有新值,但一旦您离开该字段(“模糊”它),该值就会重置。