2013-04-08 42 views
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); 
     } 
    } 
} 
}); 
+0

您能指出給出問題的特定行嗎? – 2013-04-08 15:38:48

+0

@JamesMontagne在問題鏈接的小提琴中,所有複選框都在一個div內,而我的嵌套。我認爲這與jquery有關,特別是第二個功能塊。 – Rob 2013-04-08 15:40:10

+0

我在這裏使用了相同的嵌套結構和你的js代碼,它工作的很好...... http://jsfiddle.net/pVA3d/5/ - 也許你可以告訴我們你的html源代碼(不是php),所以我們可以看到是否有這是一個問題。另外,您是否在控制檯中看到任何錯誤? – smerny 2013-04-08 15:46:26

回答

1

我看到

Uncaught ReferenceError: toggleInputs is not defined

當我點擊您的網址複選框。是否有任何理由包裝每個人的jQuery功能?嘗試將您的toggleInputs函數放在與輸入點擊函數相同的包裝中