это маленький, но очень раздражающий , глюк в моей форме.
У меня есть флажок, который при нажатии отображает другие флажки и поля ввода для пользователя, чтобы добавить больше информации. Если этот флажок снят, дополнительные параметры исчезают.
Однако (график утолщается), если в форме установлен другой флажок, можно установить флажок триггера и отобразить дополнительные параметры, , но если этот флажок не установлен, дополнительный параметр не исчезнет! *
(Извините, что долго думал, но я хотел быть ясным!)
Вот мой простой код Jquery:
$(function() {
var boxes = $('.obstruct-opt');
boxes.hide();
var ob = $('li.obstructionOptions').children().eq(0);
ob.change(function() {
if ($('$(this):checked').val()) {
boxes.show();
}
else {
boxes.hide();
}
});
});
Я пробовал разные способы проверки, если триггер проверен или нет, но любые предложения приветствуются.
Редактировать
HTML в соответствии с запросом: (хотя он и был упрощен, поскольку мой элемент управления репитера ASP.Net его сгенерировал)
<ul>
<li class="obstructionOptions">
<span>
<input id="Obstruction" type="checkbox" name="Obstruction" />
<label for="Obstruction">Obstruction</label>
</span>
<span class="obstruct-opt">
<input id="WeatherProof" type="checkbox" name="WeatherProof"/>
<label for="WeatherProof">WeatherProof</label>
</span>
<span class="obstruct-opt">
<input id="WeatherProofFlap" type="checkbox" name="WeatherProofFlap"/>
</span>
</li>
<li class="obstruct-opt">
<span>Obstruction Notes</span>
<textarea name="ObstructionNotes" rows="7" cols="50" id="ObstructionNotes"/>
</li>
</ul>
Надеюсь, это поможет!
Обновление:
замена условия if на
if ($(this).is(":checked")) {
ничего не вызывает, никаких видимых или исчезающих действий в поле зрения.
Спасибо за предложение, может быть, с моим html вы можете понять, почему?
Обновление
Хорошо, после публикации моего HTML я понял, что ASP.Net меня зашивает!
Как вы можете видеть, я выбираю объект ob в качестве первого дочернего элемента, но первый дочерний элемент является сгенерированным диапазоном! Все это время ASP оборачивал мои флажки в пролетах, и я никогда не подозревал! проницательный!
Я использовал этот код в конце:
$('ul li.obstructionOptions span').children().eq(0).click(function() {
if ($(this).is(":checked")) {
boxes.show();
}
else {
boxes.hide();
}
});
Спасибо adamantium, так как это решило продукт!
Проблема решена!
Не доверяйте ASP.Net моей разметке !!!