在执行过程中检查复选框是否被选中被跳过
checking to see if Checkbox is checked is being skipped during execution
我已经为此绞尽脑汁好几个小时了,但一无所获。我有一个简单的表格,当然要在验证和审查之后提交给数据库。
但是,我无法检索正在使用的复选框的状态。我的代码 returns 除了复选框之外的所有值,几乎就像它正在跳过复选框状态的检索,因为在变量声明之后发出警报,因为具有其他值的警报会触发并显示。
然而,选中的 属性 没有返回任何内容。我搜索并找到了无数种方法,我觉得我已经尝试了所有方法。以下是我尝试过的几种方法。谁能看出我做错了什么???
$(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">
正如 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,只需比较单击 'submit' 按钮时的输出,复选框已选中/未选中。
- .val() 总是 return 'on' - 不是你想要的
- .is('checked') 总是 return false - 不是你想要的
- .prop('checked') - returns false if not checked, true otherwise, exactly what you are looking for
我的 Wamp 服务器似乎出了问题,没有显示我最新推送到该站点的内容。这解释了为什么它似乎在不中断的情况下跳过我的代码。我重新启动了我的 wamp 服务器,它开始识别我的更改。
我已经为此绞尽脑汁好几个小时了,但一无所获。我有一个简单的表格,当然要在验证和审查之后提交给数据库。
但是,我无法检索正在使用的复选框的状态。我的代码 returns 除了复选框之外的所有值,几乎就像它正在跳过复选框状态的检索,因为在变量声明之后发出警报,因为具有其他值的警报会触发并显示。
然而,选中的 属性 没有返回任何内容。我搜索并找到了无数种方法,我觉得我已经尝试了所有方法。以下是我尝试过的几种方法。谁能看出我做错了什么???
$(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">
正如 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,只需比较单击 'submit' 按钮时的输出,复选框已选中/未选中。
- .val() 总是 return 'on' - 不是你想要的
- .is('checked') 总是 return false - 不是你想要的
- .prop('checked') - returns false if not checked, true otherwise, exactly what you are looking for
我的 Wamp 服务器似乎出了问题,没有显示我最新推送到该站点的内容。这解释了为什么它似乎在不中断的情况下跳过我的代码。我重新启动了我的 wamp 服务器,它开始识别我的更改。