检查执行期间是否跳过了Checkbox

时间:2018-09-18 04:09:49

标签: jquery checkbox ischecked

我已经花了好几个小时不停地动脑筋,而且一无所获。经过验证和审核后,我有一个简单的表单将提交给数据库。

但是,我很想获取正在使用的复选框的状态。我的代码返回除复选框以外的所有值,几乎就像它跳过对复选框状态的检索一样,因为变量声明之后的警报会触发并显示其他值,这与警报有关。

但是,checked属性不返回任何内容。我进行了搜索,发现了无数种方法,我觉得自己已经尝试了所有方法。以下是我尝试过的几种方法。谁能看到我在做什么错吗?

$(function() {
  $('#submit').on('click', function() {
    var studId = $('input[name="Selected"]:checked').val();
    var classId = $('#ClassSelection').find(":selected").val();
    var classCode = $('input[name="Code"]').val();
    //var isOnline=$("input[type='checkbox']").val();
    //var isOnline=$("input[name='isOnline']").prop('checked');
    //var isOnline=$("input[name='isOnline']").is('checked');
    var isOnline = $("input[name='isOnline']").val();
    alert(studId);
    alert(classId);
    alert(classCode);
    alert(isOnline);
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="isOnline" class="form-control">
<input type="button" class="btn btn-primary" id="submit" value="Submit">

2 个答案:

答案 0 :(得分:0)

正如Tyler Roper指出的那样,.prop()函数应该可以正常工作。

您可以尝试

$('#submit').on('click', function() {
    var isOnline1=$("input[type='checkbox']").val();
    var isOnline2=$("input[name='isOnline']").prop('checked');
    var isOnline3=$("input[name='isOnline']").is('checked');
    console.log(isOnline1);
    console.log(isOnline2);
    console.log(isOnline3);
});

我为此创建了一个代码笔:https://codepen.io/delpielo/pen/zJmevg,只需将您单击“提交”按钮时的输出与选中/未选中的复选框进行比较即可。

  • .val()总是返回'on'-不是您想要的
  • .is('checked')始终返回false-不是您想要的
  • .prop('checked')-如果未选中,则返回false,否则返回true,正是您要查找的内容

答案 1 :(得分:0)

似乎我的Wamp服务器正在运行,没有显示我对该网站的最新推送。这就解释了为什么它似乎一直在跳过我的代码而不会中断。我重新启动了Wamp服务器,它开始识别我的更改。