2017-04-05 111 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();