2017-04-05 115 views
-1

嗯,這可能是一個簡單的問題,但我已經找出了這個問題。我想在console.log中顯示覆選框的值,以便我可以使用它來觸發AJAX調用。但每個複選框的值是相同的(第一個)。console.log中複選框的顯示值

我花了一些時間在谷歌和我爲我讀的那裏,我應該把複選框在array。但我似乎無法讓它工作。這是我目前的代碼。

<!-- Custom taxonomy checkboxes --> 
    <?php 
     $taxonomy = 'locatie'; 
     $queried_term = get_query_var($taxonomy); 
     $terms = get_terms($taxonomy, 'slug='.$queried_term); 
      if ($terms) { 
       foreach($terms as $term) { 
       $name = $term->name; 
       echo "<div class='col-xs-12 col-sm-12 col-md-2 col-lg-2'> 
        <form id='location'> 
         <input class='checkIt' type='checkbox' value='".$name."' name='location' id='".$name."_id'>&nbsp;&nbsp;".$name." 
        </form> 
       </div>";        
       } 
     } 
    ?> 
<!-- /Custom taxonomy checkboxes --> 
$('.checkIt').change(function(e) { 
    var value = $(this).val(); 
    $.post('../wp-content/themes/mysite/includes/search-team-wp.php',{value:value}, function(data){ 
     $('#search_results_team').hide().fadeIn(1100); 
     $("#search_results_team").html(data); 
     console.log(value); 
    }); 
}); 

});

一切正常,即使是AJAX調用,除了console.log輸出,所以我不能通過AJAX調用發送不同的值。任何幫助將非常好!

+0

所以你能發佈數據和事件成功運行的回調? – KornholioBeavis

回答

2

使用

var value = $(this).val(); 
+0

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 –

2

的問題是因爲你選擇在選擇所有.checkIt元素change事件中。當您在元素集合上調用val()時,jQuery將只返回第一個元素的值。

要解決此問題,只需獲取引發change事件的元素的值。要做到這一點,使用this關鍵字的處理程序中:

var value = $(this).val(); 
0

您可以使用

$('.checkIt').is(':checked') 

這會給你的檢查框。

1

嘗試Ajax調用下面給出,

var value = $(this).val(); 
    $.ajax({ 
        type: "POST", 
        url:'../wp-content/themes/mysite/includes/search-team.php', 
        dataType: "json", 
        data: { 
         value:value 
        }, 
        success:function(data){ 
        $('#search_results_team').hide().fadeIn(1100); 
        $("#search_results_team").html(data); 
        console.log(value) 
        } 
    }) 
+0

謝謝你。唯一的問題是,當Ajax事件觸發時,值不會顯示在console.log中。而'#search_results_team'沒有像我的代碼那樣響應? –

+0

你在ajax範圍之後對$('#search_results_team')執行操作嗎?因爲ajax是異步調用,所以下一個語句將在ajax調用完成之前執行。獲取值也可以嘗試「var obj = $(this);而colsole.log語句會像console.log(obj.val()); – Pavan

0

Jquery.val()的複選框總是返回......你定義的值,儘管選中狀態的。

如果你想要的東西時,檢查返回值,否則返回undefined你應該做這樣的:value = $('.checkIt:checked').val();