jquery - 在所有字段都有效后启用提交按钮
问题描述
我有一个表单,其中包含 3 个带有验证的输入和一个最初禁用的提交按钮。
如果输入为空白,则会显示红色错误消息(验证)。
我想基于红色错误消息,如果没有错误消息,则提交按钮将被启用,但不知何故它不能按预期工作。
JS
$( "input" ).keyup(function() {
var value = $( this ).val();
if (!value) {
$(this).siblings(".error").addClass('alert-on');
}
else {
$(this).siblings(".error").removeClass('alert-on');
}
$('.error').each(function() {
if(!$(this).hasClass('alert-on')) {
$('.myButton').removeAttr('disabled');
return false;
}
else {
$('.myButton').prop('disabled', 'disabled');
}
})
})
HTML
<form>
<div class="fieldText">
<input type="text" placeholder="First name*" id="firstname">
<div class="error">Required</div>
</div>
<div class="fieldText">
<input type="text" placeholder="Last name*" id="lasttname">
<div class="error">Required</div>
</div>
<div class="fieldText">
<input type="text" placeholder="Company*" id="company">
<div class="error">Required</div>
</div>
<div id="form_submit">
<button class="myButton" type="submit" disabled="disabled" >
Submit
</button>
</div>
<p>
</p>
</form>
CSS
input {
display: list-item;
margin-bottom: 10px;
}
.fieldText {
display: flex;
}
.error {
display: none;
color: red;
}
.alert-on {
display: block;
}
.myButton{
height: 40px;
width: 90px;
}
label {
float: left;
padding: 20px;
}
#multi-select {
margin-top: 20px;
}
#form_submit {
width: 100%;
float: left;
}
解决方案
我给你的例子。你的css和html很好。
$("input").keyup(function () {
$("input").each(function (index , el) {
var value = $(this).val();
if (!value) {
$(this).siblings(".error").addClass('alert-on');
}
else {
$(this).siblings(".error").removeClass('alert-on');
}
if (value) {
$('.myButton').removeAttr('disabled');
} else {
$('.myButton').prop('disabled', 'disabled');
return false;
}
});
});
推荐阅读
- asp.net-core - 无法通过 Envoy (v1.17.0) 将 API 调用转发到 docker-compose (v1.27.4) 内的各自路由
- flutter - 未布置 RenderBox - 具有动态子项的特殊情况
- discord - discord.js \n 转义字符在使用 setDescription 的嵌入中不起作用
- php - 在 R 中使用 fromJSON 从 url 读取 json 输出,同时从文本文件中读取相同数据时出现“未定义的索引错误”
- typescript - 有什么方法可以在编码后立即通过终端运行 Typescript?
- angular - 使用 keycloak-angular 访问 keycloak 函数
- javascript - 用户输入重复值时,重复功能不显示警告消息
- mysql - 使用 MySQL 容器 Dockerize Django 项目
- angular - Wordpress admin-ajax.php 在 POST 上返回 0 和状态 400,但在 GET 上工作
- asp.net-mvc - 为什么忘记密码的链接不会重定向到我的应用程序?