【发布时间】:2018-09-18 17:30:50
【问题描述】:
我已经为此绞尽脑汁好几个小时了,但没有得到任何结果。我有一个简单的表单,我将在验证和审查之后提交到数据库。
但是,我对检索我正在使用的复选框的状态很感兴趣。我的代码返回除复选框之外的所有值,并且几乎就像它跳过了复选框状态的检索一样,因为变量声明之后的警报因为具有其他值的警报触发并显示。
但是,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">
【问题讨论】:
-
var isOnline=$("input[name='isOnline']").prop('checked');- 这一个(您的评论行之一)应该可以工作。当你使用它时,结果是什么?您也可以在代码中包含提交按钮吗?如果它是一个真正的提交,你似乎并没有阻止刷新。 -
我在 HTML 代码中添加了 Button 元素。似乎它像其他人一样跳过。它不会返回任何东西,也不会发出警报。它只是跳过并提醒其他值。
-
不幸的是,您的问题似乎没有复制该问题。如果您取消注释我上面提到的行并单击
Submit按钮,您将看到它根据复选框状态正确地提醒true或false。 Example -
通过注释掉除您提到的代码之外的所有其他代码行,它会发出警报,但不会返回 true 或 false。它引发 3 个警报,一个未定义,另一个为空白。 alert($("input[name='isOnline']").prop('checked'));
-
“它发出警报但不返回真假”是什么意思?如果您取消注释该行,您问题中的代码肯定会提醒
true或false(请参阅我上面链接的示例)。不幸的是,我们无法调试工作代码。如果这在您的用例中不起作用,那么问题可能只是您在问题中包含的代码之外的其他地方。