Во-первых, немного странно, что у вас есть метод submit (), который вы вызываете inline, который переворачивает и отправляет форму, который затем выполняет свой встроенный метод signup (), который затем действительно работает.Просто вызовите регистрацию вместо submit ().
Но для вашего актуального вопроса.
$(':input[required]').filter(function(){ return !this.value.trim() })
Эта команда найдет все входные данные, которые имеют обязательное свойство, которое не имеет значения.Если вы обнаружите что-либо, не выполняйте ajax.
В приведенном ниже примере немного изменена логика, так что кнопка отправки фактически отображается, но стилизована в виде ссылки.
$('form').on('submit', function(e){
e.preventDefault();
var blankRequiredFieldsExist = $(e.target).find(':input[required]').filter(function(){
return !this.value.trim();
}).length;
if (!blankRequiredFieldsExist) {
alert("You're going to sign up");
}
});
.buttonAsLink {
border: 0;
background-color: inherit;
padding: 0;
font-family: inherit;
font-size: inherit;
color: blue;
text-decoration: underline;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post">
<div class="input">
<label for="email">Email:</label>
<input required id="email"/>
</div>
<div class="input">
<label for="password">Password:</label>
<input required type="password" id="password"/>
</div>
<button type="submit" class="buttonAsLink">Sign Up</button>
</form>