jQuery, не работает в ie, chrome и safari
Извеняюсь, если не в ту тему написал.
У меня проблема со скриптом, не работает в ие и браузерах на вебките. По скрипту: при выборе определённого option отмечались нужные input, либо уходили в disabled. Сам скрипт: <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> <!-- $(document).ready(function() { $('#tarif option').click (function () { if ($(this).is('#tarstand')){ $('.rabstanc, .rabstanca, .rabstancd, .rabstancf, .servera, .sredsvosvd').attr('checked','checked'); $('.rabstancb, .rabstance, .rabstancg, .rabstanch, .serverc, .serverf, .serverg, .serveri, .sredsvosva, .sredsvosvb, .sredsvosvf, .setba').removeAttr('checked'); $('.rabstancf').removeAttr('disabled'); } else if ($(this).is('#tarhelpd')){ $('.rabstanc').attr('checked','checked'); $('.rabstanca, .rabstancb, .rabstancd, .rabstance, .rabstancg, .servera, .serverc, .serverf, .serverg, .serveri, .sredsvosva, .sredsvosvb, .sredsvosvd, .sredsvosvf, .setba, .rabstancf').removeAttr('checked'); $('.rabstancf').attr('disabled','disabled'); } else if ($(this).is('#tarprem')){ $('.rabstanc, .rabstanca, .rabstancb, .rabstancd, .rabstancf').attr('checked','checked'); $('.rabstance, .rabstancg, .rabstanch').removeAttr('checked'); $('.rabstancf').removeAttr('disabled'); } }); }); //--> </script> разметка: <form action=""> <fieldset> <div><label>Тарифный план:</label><select id="tarif"> <option value="100" id="tarhelpd">HelpDesk</option> <option value="158" id="tarstand" selected="selected">Стандарт</option> <option value="200" id="tarprem">Премиум</option> </select></div> </fieldset> <fieldset> <table> <tbody> <tr> <td> <label>Базовая поддержка ПК</label> </td> <td> <input id="bazpodcomp" type="checkbox" class="rabstanc" /> </td> </tr> <tr> <td> <label>Обслуживание стандартного офисного ПО</label> </td> <td> <input id="obsofispo" type="checkbox" class="rabstanc" /> </td> </tr> <tr> <td> <label>Лицензирование программного обеспечения</label> </td> <td> <input id="licenspo" type="checkbox" class="rabstanc" /> </td> </tr> <tr> <td> <label>Обслуживание Принтеров, сканнеров, МФУ</label> </td> <td> <input id="obsprintscanmfy" type="checkbox" class="rabstanc" /> </td> </tr> <tr> <td> <label>Антивирусная защита</label> </td> <td> <input id="antishild" type="checkbox" class="rabstanca" /> </td> </tr> <tr> <td> <label>Ограничение прав доступа</label> </td> <td> <input id="ogranpravdos" type="checkbox" class="rabstancb" /> </td> </tr> ... </tr> </tbody> </table> <div><input type="reset" value="Очистить" /></div> </fieldset> </form> код с html не весь, но там всё по аналогии к определённому чекбоксу прописан класс, проверял в опере 11 и мазиле 3.6 - работает, а в ие 8, хроме 9 и сафари 5 - не работает, что я сделал не так? |
По-моему, ИЕ просто не реагирует на click на option, только на самом select. Вот так и ИЕ работает:
$(document).ready(function() { $('#tarif').click (function() { var sel = $('#tarif option:selected')[0].id; if (sel == 'tarstand'){ $('.rabstanc, .rabstanca, .rabstancd, .rabstancf, .servera, .sredsvosvd').attr('checked','checked'); $('.rabstancb, .rabstance, .rabstancg, .rabstanch, .serverc, .serverf, .serverg, .serveri, .sredsvosva, .sredsvosvb, .sredsvosvf, .setba').removeAttr('checked'); $('.rabstancf').removeAttr('disabled'); } else if (sel == 'tarhelpd'){ $('.rabstanc').attr('checked','checked'); $('.rabstanca, .rabstancb, .rabstancd, .rabstance, .rabstancg, .servera, .serverc, .serverf, .serverg, .serveri, .sredsvosva, .sredsvosvb, .sredsvosvd, .sredsvosvf, .setba, .rabstancf').removeAttr('checked'); $('.rabstancf').attr('disabled','disabled'); } else if (sel == 'tarprem'){ $('.rabstanc, .rabstanca, .rabstancb, .rabstancd, .rabstancf').attr('checked','checked'); $('.rabstance, .rabstancg, .rabstanch').removeAttr('checked'); $('.rabstancf').removeAttr('disabled'); } }); }); Хрома и Сафари у меня нет, проверьте у себя. |
попробуйте клик поменять на onchange для jquery .change кажется
|
У меня вот эта конструкция не хочет работать в IE:
$("select#form_dropdown_AN_NCD option").click(function(){...} Здесь отслеживаются клики непосредственно на каждой опции, но IE особенный. матерился 1 день Поменял на: $("select#form_dropdown_AN_NCD").change(function(){...} Здесь отслеживаем изменение значения формы выбора(select), не опции(option). Опция - это и есть значение. Если значение поменялось, значит был клик на определенной опции. Работает теперь и в IE. |
Часовой пояс GMT +3, время: 12:34. |