24.02.2011, 16:17
|
Новичок на форуме
|
|
Регистрация: 24.02.2011
Сообщений: 1
|
|
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 - не работает, что я сделал не так?
|
|
17.03.2011, 18:00
|
Аспирант
|
|
Регистрация: 12.09.2010
Сообщений: 98
|
|
По-моему, ИЕ просто не реагирует на 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');
}
});
});
Хрома и Сафари у меня нет, проверьте у себя.
|
|
17.03.2011, 18:42
|
Аспирант
|
|
Регистрация: 04.03.2011
Сообщений: 87
|
|
попробуйте клик поменять на onchange для jquery .change кажется
|
|
30.04.2012, 12:45
|
Новичок на форуме
|
|
Регистрация: 30.04.2012
Сообщений: 1
|
|
У меня вот эта конструкция не хочет работать в IE:
$("select#form_dropdown_AN_NCD option").click(function(){...}
Здесь отслеживаются клики непосредственно на каждой опции, но IE особенный.
матерился 1 день
Поменял на:
$("select#form_dropdown_AN_NCD").change(function(){...}
Здесь отслеживаем изменение значения формы выбора(select), не опции(option). Опция - это и есть значение. Если значение поменялось, значит был клик на определенной опции. Работает теперь и в IE.
Последний раз редактировалось vg-rus, 30.04.2012 в 12:56.
|
|
|
|