Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   jQuery, не работает в ie, chrome и safari (https://javascript.ru/forum/css-html/15386-jquery-ne-rabotaet-v-ie-chrome-i-safari.html)

crowbar 24.02.2011 16:17

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 - не работает, что я сделал не так?

kostr 17.03.2011 18:00

По-моему, ИЕ просто не реагирует на 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');
        }
     });
});


Хрома и Сафари у меня нет, проверьте у себя.

lalala 17.03.2011 18:42

попробуйте клик поменять на onchange для jquery .change кажется

vg-rus 30.04.2012 12:45

У меня вот эта конструкция не хочет работать в IE:
$("select#form_dropdown_AN_NCD option").click(function(){...}

Здесь отслеживаются клики непосредственно на каждой опции, но IE особенный.
матерился 1 день

Поменял на:
$("select#form_dropdown_AN_NCD").change(function(){...}

Здесь отслеживаем изменение значения формы выбора(select), не опции(option). Опция - это и есть значение. Если значение поменялось, значит был клик на определенной опции. Работает теперь и в IE.


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