在表单提交时获取所有已检查的iCheck输入值

时间:2016-12-11 09:47:54

标签: jquery forms form-submit icheck

我有这样的html并且需要在表单提交中获取一个结果值中的所有选中值但我使用库iCheck.js并且我没有检查属性的输入

$('.checkbox-buy').iCheck({
    checkboxClass: 'icheckbox_square-green',
    radioClass: 'iradio_square-green',
    increaseArea: '20%' // optional
});

/* I need something like but it doesn't work
*/
 $('#form1').submit(function(){
   var result;
   $('.checkbox-buy').on('ifChecked', function(event).each(function(){
result += $(this).val();
});
});
<script src="http://tvoetango.ru/elki2/libs/icheck/icheck.min.js"></script>

<link href="http://tvoetango.ru/elki2/libs/icheck/skins/square/green.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form action="form.php" method="post" id="form1">
	<input type="checkbox" name="buy-item"  class="checkbox-buy" value="value 1">
	<input type="checkbox" name="buy-item"  class="checkbox-buy" value="value 2">
	<input type="checkbox" name="buy-item"  class="checkbox-buy" value="value 3">
  <!--
In html I have such code
-->
  <!--
  <div class="icheckbox_square-green checked" style="position: relative;">
<input class="checkbox-buy" name="buy-item" value="value1" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255) none repeat scroll 0% 0%; border: 0px none; opacity: 0;" type="checkbox">
<ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255) none repeat scroll 0% 0%; border: 0px none; opacity: 0;"></ins>
</div>
-->
</form>

3 个答案:

答案 0 :(得分:3)

我有下一个HTML:

<input type="checkbox" name="buy-item"  class="checkbox-buy" value="value 1" checked="true">
<input type="checkbox" name="buy-item"  class="checkbox-buy" value="value 2">
<input type="checkbox" name="buy-item"  class="checkbox-buy" value="value 3">

将选中的值作为数组获取值:

var dic = $(".checkbox-buy:checked").map(function(){
  return $(this).val();
}).toArray();

console.log(dic); // => ["value 1"]

Demo

答案 1 :(得分:0)

试试这个:

$('#form1').submit(function(){
   var result = '';
   $(this).find('.checkbox-buy').each(function()
     if($(this).prop("checked") == true) {
        result += $(this).val();
     }  
   });
});

答案 2 :(得分:0)

下面的代码适用于我,

$('#form1').submit(function(){
    var result = '';
    $.each($("input[name='buy-item']:checked"), function(){
        result += $(this).val();
    });
});