动态复选框值未通过

时间:2015-08-06 08:30:02

标签: jquery laravel

我正在处理动态复选框。我得到动态复选框但无法将其值传递给控制器​​。 这是我的剧本。

$(".select_item").click(function(){
         var this_a=$(this.id);
         var txt1=$(".min").html();
         var txt2=$(".max").html();
         var check=new Array(); 
         $("$this_a:checked").each(function() {
           check.push($(this).val());
         });
         alert(check);
         $.ajax({
            type: 'GET',
            url: "/rng",
             data:{postdata1:txt1,postdata2:txt2,postdata3:check},
            // data: {mydata:"cc"},
            success: function(data) {

                $('#product_image').html(data);
            },
          });
       });

当我点击复选框时,脚本会显示在alertbox中的消息上。 这是视图

<input type="checkbox" id="p<?php echo $s; ?>" name="cc" class="select_item" data-min="{{$min}}" data-max="{{$max+1}}"/>
<label for="{{'p'.$s}}" id="{{'p'.$s}}">
<span class="button"></span>
Rs.&nbsp;<span class="min"><?php echo $b;?></span>
- Rs. &nbsp;<span class="max"><?php   if($i==4){echo $max+1;}else{echo $b+$a;}?></span> 

我需要以最低和最高价格显示金额范围

2 个答案:

答案 0 :(得分:0)

您在脚本中更正的是显示空白警告框。 这是脚本

$(".select_item").click(function(){
         var this_a=$('#' + this.id);
         var txt1=$(".min").html();
         var txt2=$(".max").html();
         var check=new Array(); 
         $(':checked', this_a).each(function() {
           check.push($(this).val());
         });
         alert(check);

上一个显示屏显示,此脚本不显示任何内容

答案 1 :(得分:0)

您发布的代码存在一些问题。

  1. var this_a=$(this.id)不会选择任何内容,因为您在选择器的开头缺少#(无论如何您都不需要此行,因为您可以使用this ,这将是点击的dom元素)
  2. $("$this_a:checked")将按字面意思对待,因此不会选择任何内容。您可以使用$(this).filter(':checked')代替。
  3. 每个都是多余的,因为您只使用一个复选框。
  4. 您可以将代码简化为:

    $( '.select_item' ).on( 'change', function() {
    
        var txt1 = $( '.min' ).html(),
            txt2 = $( '.max' ).html(),
            check = [];
    
        if ( this.checked ) {
            check.push( this.value );
        }
    
        /* rest of code here */
    
    } );