Не логичное поведение скрипта, простой пример
function StatusSelect(){
var selected = $('#effectTypes').find('option[selected]'); if(selected.attr('id') == 'yes'){ alert('да')}; if(selected.attr('id') == 'no'){ alert('нет')}; }; Окошко селект 1 <select id='effectTypes' size=1 onChange='StatusSelect();' > <option id='yes'>Да</option> <option id='no'>Нет</option> </select> Окошко селект 2 <select id='effectTypes' size=1 onChange='StatusSelect();' > <option id='yes'>Да</option> <option id='no'>Нет</option> </select> Есть два окошка селект , в которых можно выбрать "да" и "нет". При выборе должно вылезти окошко алерт с названием того что выбрали. В первом селекте работает как надо, а во втором если выбираешь "нет" то показывает "да" и наоборот и зависит это от того что выбрано в первом селекте Почему работает неправильно, где тут ошибка подскажите пожалуйста? |
а я понял! у полей селект id одинаковые!, а как тогда сделать если у селектов id всегда разные ? не писать же каждому отдельный скрипт , если их например 1000.
я сделал так - у меня эти селекты выводятся в цикле из базы, и я перед каждым селектом вывожу свой яваскрипт где в название функции подставляю id значения из базы и в id селекта подставляю id значения из базы. на сколько это правильно так делать ? |
Цитата:
|
<script>
function StatusSelect(o){
var id = o.options[o.selectedIndex].id;
alert(id);
};
</script>
<select size=1 onChange='StatusSelect(this);' >
<option id='yes'>Да</option>
<option id='no'>Нет</option>
</select>
|
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type='text/javascript'>
$(function(){
$('.effectTypes').change(function (){
var selected = $(this).find('option[selected]');
if(selected.attr('class') == 'yes'){ alert('да')};
if(selected.attr('class') == 'no'){ alert('нет')};
})
});
</script>
<select class='effectTypes' size=1' >
<option class='yes'>Да</option>
<option class='no'>Нет</option>
</select>
<select class='effectTypes' size=1' >
<option class='yes'>Да</option>
<option class='no'>Нет</option>
</select>
|
Цитата:
|
| Часовой пояс GMT +3, время: 08:38. |