2012-03-12 3 views
0

У меня есть выпадающие списки для бизнеса, чтобы ввести их часы. Каждый день имеет раскрывающийся список с идентификатором hours_dayname_open и hours_dayname_closed. У меня также есть флажок, чтобы отметить его как закрытый. Я использую следующий JQuery, чтобы отключить падение вниз, если он установлен:jQuery Отключить несколько выпадающих списков не работает

$("#closed_monday").click(function(){ 
    if($(this).is(':checked')){ 
     $("#hours_monday_open").attr("disabled", true); 
     $("#hours_monday_closed").attr("disabled", true); 
    }else{ 
     $("#hours_monday_open").attr("disabled", false); 
     $("#hours_monday_closed").attr("disabled", false); 
    } 
}); 

Однако, когда флажок установлен только открытые часы отключен/включен ... Замкнутый выпадающий, кажется, становится игнорироваться.

+0

Вы можете посмотреть на метод опоры(), если вы используете 1.7. + –

+0

К сожалению, я застрял с 1.4.2 на данный момент –

ответ

5

Собственный атрибут, как ни странно, равен disabled, а не true.

$("#hours_monday_open").attr("disabled", "disabled"); 

Чтобы включить ее, удалить отключенный атрибут:

$("#hours_monday_open").removeAttribute("disabled"); 

С JQuery 1.6, вы можете использовать .prop() функциональность для очистки/установить это.

+0

+1. Следует упомянуть новую функцию 'prop' – gdoron

+0

. сделанный! –

0
$("#closed_monday").click(function(){ 
     if($(this).is(':checked')){ 
     $("#hours_monday_open, #hours_monday_closed").attr("disabled", "disabled"); 
     }else{ 
     $("#hours_monday_open, #hours_monday_closed").removeAttribute("disabled"); 
     } 
    });​ 
+0

Функция prop() может служить этой цели лучше: http://api.jquery.com/prop/ –

0
$("#closed_monday").change(function(){ 
    if($(this).is(':checked')){ 
     $("#hours_monday_open").attr("disabled", "disabled"); 
     $("#hours_monday_closed").attr("disabled", "disabled"); 
    }else{ 
     $("#hours_monday_open").removeAttribute("disabled"); 
     $("#hours_monday_closed").removeAttribute("disabled"); 
    } 
}); 

Это простое изменение .Кнопки() и .click(), просто неправильное событие.

http://jsfiddle.net/6Yr8Q/2/

Смежные вопросы