very silly problem but cant seem to get it. i have submit button on form disabled by default. and want to enable if none of the inputs have materialize class invalid or they are empty, works with empty but cant figure out why the check for invalid not working $(this).is( ".invalid" )
code below:
$(document).ready(function() {
$('input').keyup(function() {
var empty = false;
$('input').each(function() {
if (($(this).val().length == 0) || $(this).is( ".invalid" )) {
empty = true;
}
});
var submitBtn = $('.btn[type="submit"]');
if (empty) {
submitBtn.attr('disabled', 'disabled');
} else {
submitBtn.attr('disabled', false);
}
});
});
<div class="container">
<div class="row">
<div class="col s12 ">
<div id="main" class="card">
<div class="card-content deep-orange lighten-5">
<span class="card-title">Ajax Form</span>
<form action="submit">
<div class="row">
<div class="input-field col s6">
<input id="first_name" type="text" class="validate">
<label for="first_name">First Name</label>
</div>
<div class="input-field col s6">
<input id="last_name" type="text" class="validate">
<label for="last_name">Last Name</label>
</div>
</div>
<div class="row">
<div class="input-field col s6">
<input id="email" type="email" class="validate">
<label for="email">Email</label>
</div>
<div class="input-field col s6">
<input id="phone" type="text" class="validate">
<label for="phone">Input</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="age_input" type="number" class="validate">
<label for="age_input">Age</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="noyp_input" type="number" class="validate">
<label for="noyp_input">Number</label>
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" name="action" disabled="disabled">Submit
<i class="material-icons right">send</i>
</button>
</form>
</div>
</div>
</div>
</div>
</div>