Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [jquery] выбрать select кнопочкой 
V
    Опции темы
bars80080
Дата 6.4.2011, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 3
Всего: 315



задача простая: есть select, а есть набор кнопок. 

при нажатии на кнопку, хочу чтобы в select'е выбрался нужный option


эти методы:

Код

$('selname').eq(0).val(v);


или

Код

    $('selname').eq(0).find('option').each(function() {
        if(this.value == v) { $(this).attr('selected', 'yes'); }
        else { $(this).attr('selected', ''); }
    });


почему-то не меняют выбранный элемент в селекте
PM MAIL WWW   Вверх
нуп
Дата 6.4.2011, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 8
Всего: 33



А хтмл покажите.
PM MAIL   Вверх
bars80080
Дата 6.4.2011, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 3
Всего: 315



да, не ладно что-то в датском королевстве.

свёл код к простому примеру - работает, а в оригинале - нет.

там примерно такой механизм:
в форме изначально присутствует select. 

Код

                <div>
                    <p class="pag"><select name="qwqw" >
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>

<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
</select></p>
                </div>



по загрузке страницы я дополняю его снизу кнопочками:

        resetselbox('qwqw');

Код

function resetselbox(n) {
    var selname = 'select[name="'+ n +'"]';
    var pag = $(selname).eq(0).parent();
    var w30 = $(pag).eq(0).parent();
    var i = 0;
    $(w30).eq(0).find('.pag').each(function() {
        if(i == 0) { $(this).css('display', 'none'); }
        else { $(this).empty(); }
        i++;
    });
    var t = '';
    $(selname).eq(0).find('option').each(function() {
        if(this.selected) { t += '<span>'+ this.value +'</span>'; }
        else { t += '<a href="javascript:void(0);" onclick="changeselopt(\''+ n +'\', '+ this.value +')">'+ this.value +'</a>'; }
    });
    $(w30).eq(0).html($(w30).eq(0).html() + '<p class="pag">'+ t +'</p>');
}

select скрывается, а заместо него ряд кнопочек - ссылок
при нажатии, они изменяют значение, причём в качестве хранителя значения я использую тот же select:

Код

function changeselopt(n, v) {
    var selname = 'select[name="'+ n +'"]';alert(v);
    //$(selname).eq(0).val(v);
    //$(selname).eq(0).find('option:eq('+ v +')').eq(0).attr('selected', 'yes');
    $(selname).eq(0).find('option').each(function() {
        if(this.value == v) { this.selected = true; }
        else { /*$(this).attr('selected', '');*/ }
    });
    resetselbox(n);
}

так как кнопочки перещёлкиваются, значит значение сохраняется в select, однако, по нему это не видно. и если отправить форму, то на сервер придёт изначальное значение, а не то, которое мы нащёлкали

видимо, где-то получается не стыковка

PM MAIL WWW   Вверх
нуп
Дата 6.4.2011, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 8
Всего: 33



Цитата(bars80080 @  6.4.2011,  17:50 Найти цитируемый пост)
$(w30).eq(0).html($(w30).eq(0).html() + '<p class="pag">'+ t +'</p>');

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

        function changeselopt(n, v) {
        var selname = 'select[name="'+ n +'"]';
        $(selname).val(v);
        var options = '';
        $(selname + ' option').each(function()
        {
            var selected = ($(this).attr('selected')) ? 'selected' : '';
            options += '<option value="' + $(this).val() + '" ' + selected + '>' + $(this).text() + '</option>';
        });
        $(selname).empty().html(options);
        resetselbox(n);
    }


Это сообщение отредактировал(а) нуп - 6.4.2011, 18:37
PM MAIL   Вверх
bars80080
Дата 7.4.2011, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 3
Всего: 315



дас ист гуд, работает отлично


как всегда вечером плохо соображаю
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.