2016-08-26 4 views
0

У меня есть JS, что при выборе определенного количества элементов будут отключены другие параметры, и при выборе этих элементов будет обновлен счет, который отлично работает! Я нахожусь в том месте, когда добавляю их в корзину, а в тележке могу редактировать, поэтому, когда я нажимаю «Редактировать», он возвращается к странице продукта, и у меня есть выбранные параметры, которые были выбраны клиентом при добавлении в корзину но мой счет показывает 0 из 3, а остальные параметры не отключены.Проверка количества проверенных входов при загрузке страницы с использованием jQuery

Я знаю, что мне нужно будет сделать каждый/foreach на загрузке страницы, чтобы проверить, отмечены ли какие-либо флажки, и если да, то при ограничении отключить другие и т. Д., Но мне потребовалось некоторое время. Я хотел бы помочь вам добраться туда, где он находится в этом Скриншоте. Как я могу проверить их при загрузке?

Оригинал Fiddle:

https://jsfiddle.net/ate9a04u/2/

JS:

$(document).ready(function() { 
    var maxAllowed = 3; 
    $(".rmax").html(maxAllowed); 

    $(".subscribtion-content input.checkbox").change(function() { 
    var checkBox = $(".subscribtion-content input.checkbox") 
    var cnt = $(".subscribtion-content input.checkbox:checked").length; 
    if (cnt == maxAllowed) { 
     checkBox.not(':checked').prop('disabled', true); 
    } else { 
     checkBox.not(':checked').prop('disabled', false); 
    } 

    $(".rcount").html(cnt); 
    }); 
}); 
+0

Добавлен флажки уже проверили здесь: https: // jsfiddle .net/ate9a04u/4/- 1 из 3 необходимо просто обновить значение счета, а https://jsfiddle.net/ate9a04u/5/ имеет 3 значения по умолчанию, поэтому следует сказать 3 из 3 и отключить других до тех пор, пока не будет отменен выбор. спасибо в продвинутых парнях !! – James

ответ

2

Я думаю, вы говорите вы хотите ту же обработку, что .change() обработчик делает, чтобы работать не только тогда, когда флажок нажатие, но также и на загрузку страницы.

Если это так, просто вручную курок .change() обработчика себя один раз сразу после его связывания в существующий готового обработчик:

$(document).ready(function() { 
    var maxAllowed = 3; 
    $(".rmax").html(maxAllowed); 

    $(".subscribtion-content input.checkbox").change(function() { 
    var checkBox = $(".subscribtion-content input.checkbox") 
    var cnt = $(".subscribtion-content input.checkbox:checked").length; 
    if (cnt == maxAllowed) { 
     checkBox.not(':checked').prop('disabled', true); 
    } else { 
     checkBox.not(':checked').prop('disabled', false); 
    } 

    $(".rcount").html(cnt); 
    }).change(); // <--- this is all you need to add 
}); 

Демо: https://jsfiddle.net/ate9a04u/6/

+0

wow, что было невероятно просто! я начал минуту назад писать каждый цикл и хорошо ... даже не нужно! Спасибо друг! плохо помните, что один :) – James

+0

Добро пожаловать. Обратите внимание, что вы можете сделать эту функцию немного короче, не теряя удобочитаемости - в следующей версии избегается повторять, что '' .subscribtion-content input.checkbox "' селектор и обходится с if/else: https://jsfiddle.net/ate9a04u/7 / – nnnnnn

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