我正在处理动态复选框。我得到动态复选框但无法将其值传递给控制器。 这是我的剧本。
$(".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. <span class="min"><?php echo $b;?></span>
- Rs. <span class="max"><?php if($i==4){echo $max+1;}else{echo $b+$a;}?></span>
我需要以最低和最高价格显示金额范围
答案 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)
您发布的代码存在一些问题。
var this_a=$(this.id)
不会选择任何内容,因为您在选择器的开头缺少#
(无论如何您都不需要此行,因为您可以使用this
,这将是点击的dom元素)$("$this_a:checked")
将按字面意思对待,因此不会选择任何内容。您可以使用$(this).filter(':checked')
代替。您可以将代码简化为:
$( '.select_item' ).on( 'change', function() {
var txt1 = $( '.min' ).html(),
txt2 = $( '.max' ).html(),
check = [];
if ( this.checked ) {
check.push( this.value );
}
/* rest of code here */
} );