2012-05-20 2 views
0

В настоящее время я использую это на выбор:Как установить выбранную опцию элемента select без запуска события изменения?

var sortNo = $('select[name=anzahl_eintraegeSEL]'); 

sortNo 
    // set selected based on hidden input default value 
    .find('option[value="'+ $('input[name=anzahl_eintraege]').val() +']') 
    .attr('selected', 'selected').attr('set',true) 
    // set up change listener 
    .on('change', function(){ 
     // do sth 
     }); 

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

Как я могу заставить это работать? Вышеизложенное, похоже, сразу же вызывает событие изменения.

Спасибо за помощь!

+0

обрабатывать событие на контроль и отменить распространение –

ответ

1

Вы можете попробовать:

sortNo 
    .on('change', function(){ 
    // do sth 
    }) 
    .val($('input[name=anzahl_eintraege]').val()); // set the default value get from hidden field 

DEMO

+0

Извините, мне нужно, чтобы получить значение из скрытого ввода. это не помогает – frequent

+0

Прохладный. Это сработало. Большое спасибо! – frequent

1

за один раз: В этой строке:

.find('option[value="'+ $('input[name=anzahl_eintraege]').val() +']') 

Вы пропускаете закрытие '"' Должно быть:.

.find('option[value="'+ $('input[name=anzahl_eintraege]').val() +'"]') 

Nex t ваш .on() выполняется, когда jQuery имеет свой тег поверх ... Я думаю, вы хотите изменить, а не на.

И вам не нужно искать тег опции самостоятельно, jQuery может сделать это для вас, используя sortNo.val().

Я считаю, что это то, что вы хотите ?: http://jsfiddle.net/KadrG/

+0

Спасибо за опечатку. Я пробовал это, он также работает, но выше это больше, что мне нужно! – frequent

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