关于特定下拉选择的jQuery show()

时间:2012-08-21 16:00:13

标签: jquery

当选择下拉框中的某个值时,我希望使用jQuery的show()函数显示表单的另一部分。目前,标题上方的代码如下所示:

<script>   
    $(":input#location").change(function(){
      if($(this).val() === 'On Rental'){
        $('div#dpo').show("slow");
      }
    }
</script>

并且,表单的编码如下:

<p>
    <strong><label for="location">Location</label></strong>
</p>
<select name="location" id="location">
    <option value="Clarksville">Clarksville</option>
    <!--etc.-->
</select>

<div id="dpo" style="display:none">
  <!--Stuff I want to show here.-->
</div>

出于某种原因,当我从下拉字段中选择“On Rental”时没有任何反应,我不能为我的生活弄清楚我做错了什么。谁能看到我做错了什么?

4 个答案:

答案 0 :(得分:1)

修剪该值并尝试如下,另一件事是如果您使用id而不需要在选择器中指定tage类型

$("#location").change(function(){ 
      if($.trim($(this).val()) == 'On Rental'){
         $('#dpo').show("slow");
       }
     } 

答案 1 :(得分:0)

<script>   
$("input#location").change(function(){
  if($(this).val() === 'On Rental'){
    $('div#dpo').show("slow");
  }
}
</script>

答案 2 :(得分:0)

将其包装在document.ready函数中。您也可以使用ID选择器。而你的选择不是输入类型..

$(function(){
    $("#location").change(function() {
        if ($(this).val() === 'On Rental') {
            $('#dpo').show("slow");
        }
    }​
})

http://jsfiddle.net/wirey00/FYwPv/

答案 3 :(得分:0)

我尝试了上面的所有建议(包括将它包装在document.ready函数中),但我无法让它工作。当我放在文档的底部而不是标题中时,我最终得到了代码(就像我原来的那样)。我不太了解JavaScript和jQuery,知道为什么会这样......?