У меня есть следующий код JQuery:jQuery: функция изменения не индуцируется?
$(document).ready(function() {
$('.restrictiveOptions input[type!=checkbox], .restrictiveOptions select').change(function() {
// check off enabled for that row if anything changed
$(this).closest('.fieldRow').find('.restrictiveOptionEnabled').attr('checked','true');
alert('changed');
});
});
однако, когда я изменить входы или выбирает, ничего не происходит (даже не предупреждение)!
Я проверил, что $('.restrictiveOptions input[type!=checkbox], .restrictiveOptions select')
верен (с помощью консоли firebug и проверки длины., Которая вернулась 484). Я также убедился, что нет синтаксических ошибок.
Как вы думаете, что я делаю неправильно? благодаря!
EDIT: я обновил код и изменил $(self)
на $(this)
, но я все еще не вижу предупреждения. вот пример HTML (извините за форматирование, я добавил разрывы строк, но оно генерируется PHP):
<fieldset class="restrictiveOptions"><legend class="collapsable">
<img width="12" height="12" title="Collapse" alt="Collapse" class="toggle" src="branding/default/images/collapse.gif"> Restrictive Options</legend>
<div style="">
<div class="fieldRow">
<div class="label">
<label>Executive</label></div>
<div class="fieldWrapper">
<div class="cellValue">
<select onchange="changeRestrictionValue("event42_41")" id="event42_41_restrictionType" name="event42_41_restrictionType">
<option selected="selected" value="1">is equal to</option>
<option value="2">is not equal to</option></select>
<span id="event42_41_restrictionValue1Wrapper" class="event42_41_restrictionValueWrapper">
<select onchange="validateField(this)" name="event42_41_restrictionValue" id="event42_41_restrictionValue">
<option value="76">Yes</option>
<option value="77">No</option></select></span>
<span style="display: none;" id="event42_41_restrictionValue2Wrapper" class="event42_41_restrictionValueWrapper">
<select onchange="validateField(this)" name="event42_41_restrictionValue1" id="event42_41_restrictionValue1">
<option value="76">Yes</option>
<option value="77">No</option></select> and
<select onchange="validateField(this)" name="event42_41_restrictionValue2" id="event42_41_restrictionValue2">
<option value="76">Yes</option>
<option value="77">No</option></select></span></div>
<div style="float: right;" class="cellValue">
<label for="event42_41_enabled">Enabled?</label>
<input type="checkbox" style="vertical-align: sub; margin: 2px; padding: 0pt;" class="restrictiveOptionEnabled" title="Check me to enable this restrictive option" name="event42_41_enabled" id="event42_41_enabled" value="">
</div></div></div>
Не могли бы вы разместить свой сопровождающий html? – HurnsMobile
Четыреста восемьдесят четыре !!!! – Pointy
@ HurnsMobile: я сделал, но его решили. в любом случае спасибо! @Pointy: его зверь формы =) динамически созданный блок кода, и каждый из них имеет этот код в нем (на самом деле я показываю только одну строку в примере html, где, вероятно, будет не менее 10) на самом деле, позволяет сделать эту математику Каждая строка имеет 4 выбора/ввода, каждый блок имеет 11 строк (в моем тестовом коде, но число строк также динамическое), и в настоящее время существует 11 блоков. 11 * 11 = 121, 121 * 4 = 484 =) – Garrett