2013-03-24 106 views
0

我有两个输入,在我的网站每行一个下拉禁止输入。
要正确地解释它。启用/基于下拉选择(jQuery的)

我输入:“开始”和“结束”设置为我的商店和一个下拉开放时间选择,如果这一天是“全封闭”或“24个小时开放”。这一周的每一天。

根据选择的降了下来,我想禁用输入字段。因此,如果我选择“关闭”,则禁用“开始”和“结束”这两个字段,但仅适用于当天而不适用于所有日期。

我尝试
我设法禁用和启用所有的“开始” /“结束”的投入基础上的选择。

JS:

<script> 
$(document).ready(function() { 
    var $dropdown = $('.dropdown_time'), 
    $time = $('.timepicker'); 
    $dropdown.change(function() { 
    if ($dropdown.val() != '1') { 
     $time.removeAttr('disabled'); 
    } else { 
     $time.attr('disabled', 'disabled').val(''); 
    } 
    }).trigger('change'); // added trigger to calculate initial state 
}); 
</script> 

HTML(剥离下来 “两天”:

<div class="row"> 
    <label for="store_tuesday" class="right inline">Dienstag:</label> 
    <input type="text" class="timepicker" placeholder="Von"> 
    <input type="text" class="timepicker" placeholder="Bis"> 
    <select name="store_opening_tuesday" id='customDropdown' class='medium dropdown_time'> 
     <option value="1">Ruhetag</option> 
     <option value="2">24 Std.</option> 
     <option value="3" selected="selected">-</option> 
    </select> 
</div> 
<div class="row"> 
    <label for="store_wednesday" class="right inline">Mittwoch:</label> 
    <input type="text" class="timepicker" placeholder="Von"> 
    <input type="text" class="timepicker" placeholder="Bis"> 
    <select name="store_opening_wednesday" id='customDropdown' class='medium dropdown_time'> 
     <option value="1">Ruhetag</option> 
     <option value="2">24 Std.</option> 
     <option value="3" selected="selected">-</option> 
    </select> 
</div> 

目标:
每行下拉应只是禁用/启用在“他”行输入,而不是其他人。这可能吗?

回答

0

您需要单独配置每一行。使用你的代码,它会是这样的:

<script> 
    $(document).ready(function() { 
     $('.row').each(function(){ 
      var $dropdown = $(this).find('.dropdown_time'), 
      $time = $(this).find('.timepicker'); 
      $dropdown.change(function() { 
       if ($dropdown.val() != '1') { 
        $time.removeAttr('disabled'); 
       } else { 
        $time.attr('disabled', 'disabled').val(''); 
       } 
      }).trigger('change'); // added trigger to calculate initial state 
     }); 
    }); 
</script> 
+0

如果你正在使用jQuery 1.6及以上版本,我建议使用'.prop('disabled',true)'来禁用和元素,'。道具('禁用',假)'反向。 – Terry 2013-03-24 15:24:24

+0

这不能正常工作。例如,当我选择“Ruhetag”作为例子时,它可以工作。但是当我第二天或第三天选择“Ruhetag”(关闭)时,它会再次禁用所有输入。之后,当我选择“24标准”时在其中一个禁用的输入上,它将再次启用所选行。但是当我启用第二个时,它会禁用先前的输入。奇怪的! :d – Marek123 2013-03-24 17:11:37