Выбрать на JS определённый option в Select + нажать кнопку.

Тема в разделе "JavaScript", создана пользователем jabbaxatt, 30 апр 2015.

Модераторы: ZiX
  1. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    878
    Симпатии:
    411
    Понимаю что изврат, но можно ли по нажатию на ссылку (onclick)
    выбрать определённую позицию в выпадающем списке, а после этого выбора нажать определённую кнопку. Причём и у селекта и у кнопки ID нет, но есть классы.
    HTML:
    <select   name="jbprice-5542323c8c251" class="jsParam" data-index="p1-">
        <option value="nomer-studio">Номер-студио</option>
        <option value="standartnyj-odnomestnyj">Стандартный одноместный</option>
        <option value="standartnyj-dvumestnyj-s-odnoj-krovatyu">Стандартный двуместный с одной кроватью</option>
        <option value="dvumestnyj-lyuks-s-odnoj-krovatyu">Двуместный люкс с одной кроватью</option>
        <option value="dvumestnyj-lyuks-s-dvumya-krovatyami">Двуместный люкс с двумя кроватями</option>
        <option value="prezidentskij">Президентский</option>
    </select>
    +
    <a href="#add-to-cart-goto" class="jsAddToCartGoto jbzoo-button green" title="Забронировать">Забронировать</a>
    
     
  2. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    340
    Симпатии:
    162
    На JQuery
    Код:
    $(document).ready(function(){
      $('.jsAddToCartGoto').on('click', function(){
         $('.jsParam option[value=dvumestnyj-lyuks-s-odnoj-krovatyu]').attr('selected', 'selected');
         $('.button').trigger('click');
      });
    });
     
    Последнее редактирование: 30 апр 2015
    Solus_Rex нравится это.
  3. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.378
    Симпатии:
    563
    Код:
    $(document).ready(function(){
      $('.jsAddToCartGoto').on('click', function(){
         $('.jsParam').val('dvumestnyj-lyuks-s-odnoj-krovatyu');
    $('.button').trigger('click');
      });
    });
    или так
     
    Solus_Rex и Absolute нравится это.
  4. Solus_Rex

    Solus_Rex

    Регистр.:
    15 янв 2012
    Сообщения:
    425
    Симпатии:
    179
    А не подскажете чем один вариант лучше или хуже другого?
     
  5. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.378
    Симпатии:
    563
    в принципе дело привычки.
     
    Solus_Rex нравится это.
  6. Solus_Rex

    Solus_Rex

    Регистр.:
    15 янв 2012
    Сообщения:
    425
    Симпатии:
    179
    Т.е. ни функционально, ни по правильности они не отличаются?
     
  7. ZiX

    ZiX Коддинг, Парсинг

    Moderator
    Регистр.:
    9 июл 2011
    Сообщения:
    1.378
    Симпатии:
    563
    да вы правы. ничем. дело привычки.
     
    Solus_Rex нравится это.
  8. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    340
    Симпатии:
    162
    Как по быстродействию - не знаю, хотя в данном случае скорость не принципиальна. Меньше кода, проще и понятнее - это, как правило, лучше :)
    Можно ещё так:
    Код:
    $(document).ready(function(){
      $('.jsAddToCartGoto').on('click', function(){
         $('.jsParam')[0].value='dvumestnyj-lyuks-s-odnoj-krovatyu';
         $('.button').trigger('click');
      });
    });
    Так:
    Код:
    $(document).ready(function(){
      $('.jsAddToCartGoto').on('click', function(){
         $('option[value=dvumestnyj-lyuks-s-odnoj-krovatyu]').prop('selected', true);
         $('.button').trigger('click');
      });
    });
    И даже так:
    Код:
    $(document).ready(function(){
      $('.jsAddToCartGoto').on('click', function(){
         $('.jsParam option:eq(3)')[0].selected='selected';
         $('.button').trigger('click');
      });
    });
     
    Solus_Rex нравится это.