Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставка переменной в фильтр (https://javascript.ru/forum/misc/25398-vstavka-peremennojj-v-filtr.html)

nikolayseo 04.02.2012 11:19

Вставка переменной в фильтр
 
$('#transaction').change(function (){

var transaction_id = $('#transaction option:selected').attr('id');
$("form select[id=transaction] option:selected").removeAttr('selected');
$("form select[id=transaction] option[id= ' + transaction_id + ']").attr('selected','selected');

});



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

Побывал и так (' + transaction_id + ') и так ' + transaction_id + ' все равно не работает.

В чем может быть причина ?

monolithed 04.02.2012 11:40

Цитата:

Сообщение от nikolayseo
В чем может быть причина ?

$('#transaction option[id="' + transaction_id + '"]').attr('selected', 'selected');


Для чего вообще понадобилось использовать id если для этого есть value и что вы пытаетесь сделать?

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<select>
    <option value="0" disabled="" selected="">--select--</option>
    <option value="1">first</option>
    <option value="2">second</option>
    <option value="3">third</option>
<select>

<script>
$('select').change(function() {
    var index = this.selectedIndex;
    alert(index + ': ' + this[index].text);
});
</script>

nikolayseo 04.02.2012 17:54

Цитата:

Сообщение от monolithed
Для чего вообще понадобилось использовать id если для этого есть value и что вы пытаетесь сделать?

Мне нужно к выбранному option'у обязательно добавить атрибут selected, но проблема в том, что когда будет выбран другой option то, у предыдущего останется selected и если продолжать выбирать selected будет у каждого выбираемого optiona...

Поэтому, я хочу каждый раз удалять selected у всех optionon'ов, 
$("form select[id=transaction] option:selected").removeAttr('selected');


и добавлять selected только к тому у которого id = только что выбранному

var transaction_id = $('#transaction option:selected').attr('id');
$("form select[id=transaction] option[id= ' + transaction_id + ']").attr('selected','selected');

monolithed 04.02.2012 18:53

А для чего добавлять selected если оно ничего не даст в итоге?
Вот пример с disabled

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<select>
    <option value="0" disabled="" selected="">--select--</option>
    <option value="1">first</option>
    <option value="2">second</option>
    <option value="3">third</option>
<select>

<script>
$('select').change(function() {
  $(this[this.selectedIndex]).prop('disabled', ' ').siblings().removeProp('disabled');
});
</script>

nikolayseo 04.02.2012 19:55

Цитата:

Сообщение от monolithed
А для чего добавлять selected если оно ничего не даст в итоге?

В иотге будет браться html() селекта и всех опшинов, передаваться через ajax в сессию...потом когда будет из сессии доставаться, чтобы сразу было выделено selected'ом тот опшин, который был выбран ...

Ваш пример попробовал запилить под selected, но работает только в случае с disabled... что подправить ?

monolithed 04.02.2012 20:53

Цитата:

Сообщение от nikolayseo
Ваш пример попробовал запилить под selected, но работает только в случае с disabled... что подправить ?

Так и не будет работать, точнее будет, просто это ничего не даст.


Часовой пояс GMT +3, время: 06:41.