[英]Enable Submit button after all fields are valid
我有一个表单包含 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;
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.