2014-02-06 2 views
0

Я пытаюсь выполнить итерацию над полем, в котором есть некоторые флажки, и отключить некоторые флажки на основе данных в массиве.Как отключить некоторые флажки с jQuery

Для каждого из ящиков я хочу проверить, найдено ли значение флажка в массиве, который является переменной из php. Если да, флажок отключен, и класс добавляется к родительскому.

Почему этот код не работает? Это первая функция, которую я когда-либо писал сам в jQuery, так что помилуй.

jQuery(function($) { // wordpress no-conflict hack 

    var booked = php echo $booked_24; // the php echo syntax is wrong here, 
       but the editor does not allow me to put in proper php tags. 

    $('div#acf-booking_times_24 input:checkbox').each(function() { 
     if ($.inArray(this.value, booked) !== -1) { 
      $(this).attr('disabled',true); 
      $(this).parent('label').addClass('unavailable'); 
     } 
    }); 
}); 
+1

Использование .prop() вместо .attr() – Anton

+0

в проверке Debuger он вступит в «если» заявление – Nicolai

ответ

0

Попробуйте заменить Ниже фрагмент кода Заменить Ваш

$(this).attr('disabled',true); 

по

$(this).attr('disabled', 'disabled'); 
+0

это то же самое ... – Nicolai

+0

Нет, это работает Different (для некоторых браузеров), если Вы используете Опору в место attr, затем используйте 'disabled', true else для attr 'disabled', 'disabled' или попробуйте запустить в другом браузере –

+0

[проверить это] (http://jsfiddle.net/Z6y6p/3/) – Nicolai

0

Так я понял ошибку, это было больно просто.

if ($.inArray($(this).value, booked) !== -1) 

должен быть

if ($.inArray($(this).val(), booked) !== -1) 

Благодаря Nicolai для скрипки, он помог мне найти его.

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