2010-12-16 92 views
3

我需要一个函数来比较两个下拉选择器中的两个值,如果它们相同,则显示一个div。如果可能的话,我想使用jQuery。比较两个下拉值

<select id="drop1"> 
    <option value="a">a 
    <option value="b">b 
    <option value="c">c 
</select> 

<select id="drop2"> 
    <option value="a">a 
    <option value="b">b 
    <option value="c">c 
</select> 

回答

6
$("#myDiv").toggle($("#drop1").val() === $("#drop2").val()); 

说明:$("#dropX").val()得到在下拉列表中选择的元素的值; ===比较它们,给予truefalse视情况而定;和$("myDiv").toggle(...)根据传递的值显示或隐藏#myDiv

如果您希望在值发生更改时执行此操作,请将其包装在$("#drop1, #drop2").change(function() { ... });中,如同在nickf的答案中一样。

+0

切换功能不错又方便的超载,但为什么3 ===? – 2010-12-16 17:55:10

+0

'=='只比较值,但如果它们不相等,则强制类型(例如'null ==“”== undefined == 0“); '==='也需要类型相等(所以'null === null',但是'null!=='“'和'null!== undefined'等等)。总是使用'==='是最佳实践。 – Domenic 2010-12-16 17:57:15

+0

@Eric如果只有一个网站回答这样的问题 - 哦等等! http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use :) – 2010-12-16 17:57:54

5
$('#drop1, #drop2').change(function() { 
    $('#myDiv').toggle(
     $('#drop1').val() === $('#drop2').val() 
    ); 
});