【发布时间】:2021-03-28 20:53:35
【问题描述】:
概述
我目前正在处理一个涉及注册页面的项目。我在客户端使用 bootstrap 和 javascript/jquery。
问题
我不希望用户在填写每个输入字段并选中复选框之前提交表单。默认情况下,提交按钮被禁用。当字段不为空时,我成功激活了提交按钮。但是我的问题在于复选框,当输入字段不为空并且复选框被选中时激活提交按钮。
这是一个代码 sn-p 以更好地澄清我的问题(为此问题消除了不必要的字段)
$(document).ready(function() {
$('.register input').keyup(function() {
var empty = false;
$('.register input').each(function() {
if ($(this).val().length == 0) {
empty = true;
}
});
if (empty) {
$('#register').attr('disabled', 'disabled');
} else {
$('#register').removeAttr('disabled');
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- username input -->
<div class="form-outline mb-4 register">
<input type="text" id="registerUsername" class="form-control" />
<label class="form-label" for="registerUsername">Username</label>
</div>
<!-- Password input -->
<div class="form-outline mb-4 register">
<input type="password" id="registerPassword" class="form-control" />
<label class="form-label" for="registerPassword">Password</label>
</div>
<!-- Checkbox -->
<div class="form-check d-flex justify-content-center mb-4">
<input class="form-check-input me-2" type="checkbox" value="" id="registerCheck" aria-describedby="registerCheckHelpText" />
<label class="form-check-label" for="registerCheck">
I have read and agree to the terms
</label>
</div>
<!-- Submit button -->
<button type="submit" id="register" disabled="disabled" class="btn btn-dark btn-block mb-3">Register</button>
我尝试了什么?
好吧,我在 Stackoverflow 上找到了答案,并尝试根据我的需要调整它们。以下是我尝试过的两种解决方案及其缺陷。不幸的是,它没有按预期工作。
- 我尝试检查复选框是否被选中,就像我对输入字段所做的那样(我忘记了这个的来源)
这是我使用的代码:
$(document).ready(function(){
$('input[type="checkbox"]').click(function(){
if($(this).is(":not(:checked)")){
$('#register').attr('disabled', 'disabled');
}
});
});
- 第二种方法来自这个answer。这也没有用:(
感谢任何帮助。提前致谢。
【问题讨论】:
-
我已根据您的要求更新了解决方案。在这里,我们正在检查文本和密码输入的 keyup 事件以及 checkbok 的更改事件。希望这对你有用。
标签: javascript jquery