У меня странное явление с jQuery. У меня есть div с несколькими флажками и переключателями
<div id="advanced_search">
<div>
<div class="searchoptions">
<input type="checkbox" id="hidden_mr" name="hidden_mr" />
<label for="hidden_mr">Model Release</label>
</div>
<div class="searchoptions">
<input type="checkbox" id="hidden_pr" name="hidden_pr" />
<label for="hidden_pr">Property Release</label>
</div>
</div>
<div>
<div class="searchoptions">
<input type="radio" id="hidden_portrait" name="hidden_format" value="portrait" />
<label for="hidden_portrait">Portrait</label>
</div>
<div class="searchoptions">
<input type="radio" id="hidden_landscape" name="hidden_format" value="landscape" />
<label for="hidden_landscape">Lanscape</label>
</div>
<div class="searchoptions">
<input type="radio" id="hidden_square" name="hidden_format" value="square" />
<label for="hidden_square">Square</label>
</div>
<div class="searchoptions">
<input type="radio" id="hidden_pano" name="hidden_format" value="pano" />
<label for="hidden_pano">Panoramic</label>
</div>
</div>
</div>
При выборе флажков или радиокнопок я хочу изменить скрытые поля, которые являются частью "реальной" формы, которая находится где-то в разметке.
<form method="get" name="searchbox" id="searchbox" action="">
<input type="hidden" id="mr" name="mr" value="" />
<input type="hidden" id="pr" name="pr" value="" />
<input type="hidden" id="format" value="" />
</form>
Я думал, что следующий код jQuery сделает это
$(document).ready(function() {
$('#hidden_mr').change(function() {
if ($('#hidden_mr').attr('checked')) { $('#mr').val(1); }
else { $('#mr').val(0); }
});
$('#hidden_pr').change(function() {
if ($('#hidden_pr').attr('checked')) { $('#pr').val(1); }
else { $('#pr').val(0); }
});
$('input:radio[name=hidden_format]').change(function() {
$('#format').val($('input:radio[name=hidden_format]:checked').val());
});
});
Когда я загружаю страницу и нажимаю «Release Model», она устанавливает #mr в 1, отмена выбора устанавливает его в 0. Но с другим флажком или радиокнопками ничего не происходит. Однако, если я снова загружаю страницу и нажимаю «Property Release», она устанавливает #pr в 1, но больше ничего не делает для других элементов. И то же самое для радиокнопок: я загружаю страницу и нажимаю на них, они работают, но все остальные перестают работать.
Я надеюсь, что я упускаю что-то очень простое (или, скорее: я боюсь, что это может быть так, и я слишком глуп, чтобы это увидеть ...)
Кроме того, код может быть не самым умным, поэтому, если у кого-то есть предложения по улучшению, я буду рад их увидеть.
веселит,
перекидывать