Не логичное поведение скрипта, простой пример
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, время: 09:59. |