0
我有一些div內的複選框受data-max-answers
(這是從Wordpress抓取)中的數字限制。所以如果這個數字是2,那麼用戶只能勾選2個複選框,其他的灰色。引用jquery嵌套div內的複選框
我遇到的問題是我無法弄清楚如何通過div深入目標複選框,任何人都可以幫我嗎?
我有一個簡化的版本,其中的複選框直接在div中,這工作正常,但不能讓它工作我的地方,其中嵌套divs - http://jsfiddle.net/pVA3d/4/。
<div class="question" data-max-answers="<?php echo $repeater_row['required_answers']; ?>">
<?php $rows = $repeater_row['answer_options'];
foreach ($rows as $row){ ?>
<?php $Question[$counter] = $_POST['answer'.$counter]; ?>
<div style="display:table-row;">
<div style="display:table-cell;">
<input style="width: 20px;" type="checkbox" name="answer<?php echo $counter; ?>[]" value="<?php echo the_sub_field('answer'); ?>" />
</div>
<div style="display:table-cell;">
<p>
<?php echo $row['answer']; ?>
</p>
</div>
</div>
<?php } ?>
</div>
的Jquery:
jQuery(function($) {
$(document).ready(function() {
$("input[type=checkbox]").click(function (e) {
if ($(e.currentTarget).closest("div.question").length > 0) {
toggleInputs($(e.currentTarget).closest("div.question")[0]);
}
});
});
});
jQuery(function($) {
function toggleInputs(questionElement) {
if ($(questionElement).data('max-answers') == undefined) {
return true;
} else {
maxAnswers = parseInt($(questionElement).data('max-answers'), 10);
if ($(questionElement).find(":checked").length >= maxAnswers) {
$(questionElement).find(":not(:checked)").attr("disabled", true);
} else {
$(questionElement).find("input[type=checkbox]").attr("disabled", false);
}
}
}
});
您能指出給出問題的特定行嗎? – 2013-04-08 15:38:48
@JamesMontagne在問題鏈接的小提琴中,所有複選框都在一個div內,而我的嵌套。我認爲這與jquery有關,特別是第二個功能塊。 – Rob 2013-04-08 15:40:10
我在這裏使用了相同的嵌套結構和你的js代碼,它工作的很好...... http://jsfiddle.net/pVA3d/5/ - 也許你可以告訴我們你的html源代碼(不是php),所以我們可以看到是否有這是一個問題。另外,您是否在控制檯中看到任何錯誤? – smerny 2013-04-08 15:46:26