何かをクリックしたり、送信ボタンをクリックするなどの機能を呼び出すことなく、フォームが有効なときにボタンの色を変更します。フォームが有効になるとすぐに、ボタンが青に変わるはずです。私はこの周りに頭を浮かべることができず、どんな助けでも大歓迎です。フォームが有効なときに送信ボタンの色を変更します。
HTML:
<form id="email_login" method="post">
<label for="email" class="form_login" id="email_text">Email</label><br>
<input type="text" placeholder="Enter Email" name="email" class="email_login_boxes" id="email_box" >
<div class="error" id="error_email"></div>
<label for="password" class="form_login" id="password_text">Password</label>
<input type="password" placeholder="Enter Password" name="password" class="email_login_boxes" id="password_box" >
<div class="error" id="error_password" ></div>
<input type="submit" value="LOGIN" id="submit_btn" />
</form>
のjQuery:
$("input").on("keydown", function (e) {
return e.which !== 32;
});
$("#error_email").hide();
$("#error_password").hide();
var error_email = false;
var error_password = false;
$("#email_box").click(function(){
$("#error_email").hide();
});
$("#password_box").click(function(){
$("#error_password").hide();
});
$("#email_box").focusout(function(){
check_email();
});
$("#password_box").focusout(function(){
check_password();
});
function check_email() {
var pattern = new RegExp(/^[+a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i);
if(pattern.test($("#email_box").val())) {
$("#error_email").hide();
} else {
$("#error_email").html("Invalid email address");
$("#error_email").show();
error_email = true;
}
}
function check_password() {
var password_length = $("#password_box").val().length;
if (password_length < 5) {
$("#error_password").html("Must be greater than 5 characters");
$("#error_password").show();
error_password = true;
} else{
$("#error_password").hide();
}
}
$("#email_login").submit(function() {
error_email = false;
error_password = false;
check_email();
check_password();
if(error_password == false && error_email == false) {
return true;
} else {
return false;
}
});