根据选择值显示/隐藏div - jquery

时间:2012-01-10 16:43:07

标签: jquery

我正在尝试检查我的下拉列表的值是否为“单日期”,如果是,则隐藏div #ToDate。不知道我在这里做错了什么。

HTML

<div class="mc-form-field mc-full">
    <label for="formDate">Payment Date:</label>
    <select name="mc-formPaymentDate" id="PaymentDate">
        <option value="Please select">Please select</option>
        <option value="Single Date">Single Date</option>
        <option value="Date Range">Date Range</option>
        <option value="Single Month">Single Month</option>
        <option value="Last 30 Days">Last 30 Days</option>
        <option value="Last 60 Days">Last 60 Days</option>
        <option value="Last 90 Days">Last 90 Days</option>
    </select>
</div>

<div class="mc-form-field mc-half mc-inline">
    <label for="mc-formFromDate">From Date:</label>
    <input type="text" name="formFromDate" id="mc-formFromDate" class="mc-text">
</div>

<div class="mc-form-field mc-half mc-inline mc-right" id="ToDate">
    <label for="mc-formToDate">To Date:</label>
    <input type="text" name="formToDate" id="mc-formToDate" class="mc-text">
</div>

的Javascript

$("#PaymentDate").change(function() {
    if (this.value == 'Single Date') {
        $('#ToDate').hide();
    }
}); 

3 个答案:

答案 0 :(得分:5)

尝试使用jQuery toggle方法,该方法可以采用布尔标记来显示或隐藏元素。

$("#PaymentDate").change(function() {
   $('#ToDate').toggle(this.value != 'Single Date');
}); 

答案 1 :(得分:1)

它运行正常,但如果测试结果为假,则需要再次显式show ToDate:

$("#PaymentDate").change(function() {
    if (this.value == 'Single Date') {
        $('#ToDate').hide();
    } else {
        $('#ToDate').show();
    }
});

http://jsfiddle.net/mblase75/3F93A/

答案 2 :(得分:0)

你试过吗?

 <script type="text/javascript">
 $(document).ready(function(){
      $("#PaymentDate").change(function() { 
          if ($(this).val() == 'Single Date') 
               $('#ToDate').hide(); 
      }); 
 });
 </script>

请注意,我使用$(this).val()而不是this.value