Обнаружение, когда более чем один флажок установлен в форме с JavaScript - PullRequest
0 голосов
/ 24 февраля 2011

Я схожу с ума от этого, у меня работает хромая функция, но она не совместима со всеми браузерами:

код javascript:

        function KeepCount() {

        var NewCount = 0;

        if (document.FormName.iphone3g1.checked)
        {NewCount = NewCount + 1;}

        if (document.FormName.iphone3g2.checked)
        {NewCount = NewCount + 1;}

        if (document.FormName.iphone3g3.checked)
        {NewCount = NewCount + 1;}

        if (document.FormName.iphone3g4.checked)
        {NewCount = NewCount + 1;}

        if (NewCount == 2){
            valor.value  = total.value - (total.value*20/100);}

        if (NewCount <= 1){
            valor.value = 0;
        }

        }

html part:

<input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g1" value="50.00"> Vidro Partido<br />
    <input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g2" value="59.00"> LCD Danificado<br />
    <input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g3" value="80.00"> Substituir capa traseira<br />
    <input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g4" value="38.00"> Botão Volume

Ну, это относится к дисконту с использованием Chrome и Firefox, но мне все равно не очень нравится код.

Я знаю, что здесь много экспертов, может кто-то изВы помогаете мне, пожалуйста? Я был бы очень благодарен

1 Ответ

1 голос
/ 24 февраля 2011

Если вы используете jquery, вы можете сделать что-то вроде

 if($('#productDiv input:checked').length >= 2) ...

Таким образом, вы не должны вручную кодировать каждый флажок. Вместо этого оберните их все в некоторый div или назначьте им некоторый уникальный класс css, и в этом случае вы выберете с помощью $('input.myProduct:checked'), и будет легко получить счетчик. )

Как сказал @Джон Уэлдон, хорошо рассчитать эту сторону клиента, если вы хотите отобразить ее в браузере, но вы ДОЛЖНЫ проверить, что все цены на стороне сервера являются правильными, как только вы получите заказ, иначе я мог бы дайте себе 100% скидку и т.д ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...