javascript - 正确选中复选框时如何启用?
问题描述
我正在尝试在选中复选框时启用按钮,但我不知道我的代码做错了什么。
$(document).ready(function() {
$(".checkboxdav").on("change", function(e) {
if ($(".checkboxdav").attr("checked")) {
$(".submit").removeAttr("disabled");
} else {
$(".submit").attr("disabled", "disabled");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input checkboxdav" id="customCheck1">
<label class="custom-control-label" for="customCheck1">Declaro que tengo la autorización del
propietario del vehículo para suministrar sus datos a Davivienda para la compra del
SOAT.</label>
</div>
<div class="col-12 px-0 d-flex justify-content-center mt-3">
<button type="submit" id="submit-form" class="submit primary-btn px-4 py-2"
disabled>Cotizar</button>
</div>
解决方案
checked
属性值不会随着复选框的状态而改变,而属性checked
会。因此,确定是否选中复选框的跨浏览器兼容方法是使用如下属性:
if ( elem.checked )
if ( $( elem ).prop( "checked" ) )
if ( $( elem ).is( ":checked" ) )
因此,您可以像这样更新代码:
if ($(".checkboxdav").is(":checked")) {
$(".submit").prop('disabled', false);
} else {
$(".submit").prop('disabled', true);
}
推荐阅读
- python - 如何检查任一 xpath 是否存在,如果存在文本则返回值?
- macos - dispatch_sync 从 CVDisplayLink 回调到主线程
- orchardcore - Orchard Core 是否可以像控制台应用程序一样用作工作流组件
- python - FileNotFoundError: [Errno 2] No such file or directory: 'gifsicle': 'gifsicle' in Google Colab
- python - Python 3.7 Tkinter
- sql-server - 如何在 Visual Studio 中创建与 SQL Server 的连接?获取 SqlException:用户登录失败
- java - 流 api 是否遵循 Java 中的责任链或装饰器模式?
- r - 从 R 中的数据框中提取状态级别百分比 - 更好的解决方案?
- amazon-web-services - Terraform - 动态变量参数
- javascript - 如何在 JS 中创建数组的排列但具有给定数量的字符