2012-09-27 51 views
0

想象一下,我有许多不同的过滤器的Web应用程序,这会影响在页面上搜索结果。是否有任何技术可以指示html select元素是否被“使用”?

这些过滤器是可选的,我使用select元素。第一个选项总是意味着过滤器没有被使用,并且表示“未使用”或“选择xyz”。

我现在正在寻找一种方法,以便快速浏览哪些过滤器当前正在使用,哪些不是,例如,通过改变颜色或背景颜色。

我没有找到一种方法来通过CSS做到这一点,也许它不可能没有JavaScript? 解决方案只需要在最新的Chrome中工作。

+0

您想要什么颜色改变?只要用户更改下拉菜单,当页面重新加载? – Travesty3

+0

会好的 – Riesling

+1

不是没有服务器端或JavaScript的组件,没有。有[':checked'](http://www.w3.org/TR/css3-selectors/#checked),但这仅适用于(可预测的)复选框和广播元素。 –

回答

0

如果您希望在用户更改选择后立即更改下拉列表的颜色(无需重新加载页面),则必须使用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"); ?>;"> 
+0

好吧,我担心这不可能通过CSS。我知道如何在JavaScript/PHP中,但感谢您的答案 – Riesling

相关问题