无法使用jquery检查或取消选中复选框值

时间:2018-04-16 13:30:57

标签: jquery html

复选框值更改为1但未选中时则无法更改为0



$('.ChkBox').change(function() {
  if ($(this).attr('checked')) {
    $(this).val('1');
  } else {
    $(this).val('0');
  }
  alert($(this).val());
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" checked data-plugin="switchery" data-color="#648c2c" data-size="small" value="0" class="ChkBox" name="sms[]" />
&#13;
&#13;
&#13;

在警报中我总是得到1.

默认值为0并检查。 我想要它,以便当盒子未经检查时我得到1,当检查时我得到0.请告诉我我做错了。

3 个答案:

答案 0 :(得分:1)

您可以使用解决方案

$('.ChkBox').change(function() {
  if ($(this).prop('checked')) {
    $(this).val('1');
  } else {
    $(this).val('0');
  }
  console.log($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" checked data-plugin="switchery" data-color="#648c2c" data-size="small" value="0" class="ChkBox" name="sms[]" />

请使用.attr(属性)

,而不是.prop

答案 1 :(得分:0)

您可以放置​​.attrternary condition

而不是is(':checked')

&#13;
&#13;
$('.ChkBox').change(function() {
  $(this).val( $(this).is(':checked') ? '1' : '0' );
  console.log($(this).val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" checked data-plugin="switchery" data-color="#648c2c" data-size="small" value="0" class="ChkBox" name="sms[]" />
&#13;
&#13;
&#13;

答案 2 :(得分:0)

试试这个:

我刚刚在HTML中使用了onclick事件并进行调试,我使用了Jquery。如果您不需要,可以删除Jquery。

$(".ChkBox").on("change", function() {
var a = $(this).val();
alert(a);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" checked data-plugin="switchery" data-color="#648c2c" data-size="small" value="0" class="ChkBox" name="sms[]" onclick="$(this).attr('value', this.checked ? 1 : 0)"/>

希望这会有所帮助。