想象一下,我有许多不同的过滤器的Web应用程序,这会影响在页面上搜索结果。是否有任何技术可以指示html select元素是否被“使用”?
这些过滤器是可选的,我使用select元素。第一个选项总是意味着过滤器没有被使用,并且表示“未使用”或“选择xyz”。
我现在正在寻找一种方法,以便快速浏览哪些过滤器当前正在使用,哪些不是,例如,通过改变颜色或背景颜色。
我没有找到一种方法来通过CSS做到这一点,也许它不可能没有JavaScript? 解决方案只需要在最新的Chrome中工作。
想象一下,我有许多不同的过滤器的Web应用程序,这会影响在页面上搜索结果。是否有任何技术可以指示html select元素是否被“使用”?
这些过滤器是可选的,我使用select元素。第一个选项总是意味着过滤器没有被使用,并且表示“未使用”或“选择xyz”。
我现在正在寻找一种方法,以便快速浏览哪些过滤器当前正在使用,哪些不是,例如,通过改变颜色或背景颜色。
我没有找到一种方法来通过CSS做到这一点,也许它不可能没有JavaScript? 解决方案只需要在最新的Chrome中工作。
如果您希望在用户更改选择后立即更改下拉列表的颜色(无需重新加载页面),则必须使用JavaScript。例如:
<script type="text/Javascript">
function changeColor(element)
{
if (element.selectedIndex != 0)
element.style.backgroundColor = "green";
else
element.style.backgroundColor = "red";
}
</script>
<select onchange="changeColor(this)">
所以这就是当用户改变选择时就要改变颜色的方法。
要在页面重新加载时更改它,您将不得不使用一些服务器端脚本语言(我假设您已经使用了该语言)。因此,在创建<select>
元素时,您会检查是否已设置其值。如果您使用PHP,它可能看起来像这样:
<select name="mySelect" style="background-color:<?php echo ($_POST["mySelect"] == "select xyz" ? "red" : "green"); ?>;">
好吧,我担心这不可能通过CSS。我知道如何在JavaScript/PHP中,但感谢您的答案 – Riesling
您想要什么颜色改变?只要用户更改下拉菜单,当页面重新加载? – Travesty3
会好的 – Riesling
不是没有服务器端或JavaScript的组件,没有。有[':checked'](http://www.w3.org/TR/css3-selectors/#checked),但这仅适用于(可预测的)复选框和广播元素。 –