странное поведение в опции выбора: выбрано - PullRequest
0 голосов
/ 10 августа 2009

У меня есть несколько блоков выбора на одной странице, я пытаюсь получить значение и текст выбранных параметров и вставить их в скрытые поля, если я выбрал только первое (первый раз после перезагрузки страницы) не работает, но если я выберу первый и второй после перезагрузки страницы, это будет работать,

, чтобы заставить его работать, я должен сначала выбрать опцию во втором окне выбора, и все будет работать.

вот ссылка на сайт. http://www.snappy -pizza.net / sides.php

любая помощь будет оценена.

      <form>
          <input type="hidden" value="MIXED SALAD" />
          <select  class="select" name="select3" id="select3">
            <option value="0">0</option>
            <option value="1.99">1</option>
            <option value="1.99">2</option>
            <option value="1.99">3</option>
            <option value="1.99">4</option>
            <option value="1.99">5</option>
            <option value="1.99">6</option>
            <option value="1.99">7</option>
            <option value="1.99">8</option>
          </select>
       </form>

        <form>
          <input type="hidden" value="Onion Rings" />
          <select  class="select" name="select" id="select">
            <option value="0">0</option>
            <option value="1.99">1</option>
            <option value="1.99">2</option>
            <option value="1.99">3</option>
            <option value="1.99">4</option>
            <option value="1.99">5</option>
            <option value="1.99">6</option>
            <option value="1.99">7</option>
            <option value="1.99">8</option>
          </select>
       </form>

   $(function() {

      $('#my-add-button-sides').click(function() {
    var qty = [];
    var price = [];
    var items_names = [];
    var final_price = 0;

    $('.select option:selected').each(function() {
        var $this = $(this);
        if (($this.text()) > 0) {
            qty.push($this.text() );
            price.push($this.val() );
            items_names.push($this.parent().prev('input:hidden').val () );
        }
        $this.attr('selected','');

    });

    var total_price = $.map(qty, function (n,i) {
        return n * price[i];
    });

    $.each(total_price,function() {
        final_price += this;
    });

    var qty_items = $.map(qty, function(n,i) {
        return n +"--"+ items_names[i];
    });


    var randomNumber = Math.floor((Math.random() * 9000) + 200);
    $('input[name=my-item-id]').val(randomNumber);
    $('input[name=my-item-name]').val(qty_items.join('\n') );
    $('input[name=my-item-price]').val(final_price);

  });
  });

1 Ответ

1 голос
/ 10 августа 2009

Я проверил ваш код, и у меня есть результат final_price, даже если используется только первое поле выбора. Я выбираю в первом поле значение 1 и получаю 1.99 ответ. Проверьте ваш пример.

Обновление PizzaPrice не определена, это ошибка, которую я получаю. Попробуйте также поместить первый блок кода в $ (function () {}, который является оберткой для функции ready (). У вашего кода нет доступа к переменной PizzaPrice.

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