У меня есть форма, которая проверяет пароль null/blank или не использует onblur. И я использую кнопку отправки, чтобы отправить форму. Однако перед тем, как работать, дважды нажмите кнопку «Отправить». Это не работает при первом щелчке после того, как что-то было заполнено в поле пароля. Ниже приведен код.Проверка OnBlur Требуется кнопка Onsubmit, которую нужно дважды щелкнуть в Pure Javascript
Что касается JQuery, мне требуется решение в чистом Javascript.
Я пробовал onkeyup, но это нехорошее решение, так как это наложит напряжение на систему и сервер (для ajax).
<!DOCTYPE html>
<html>
<body>
<script>
var error_user_password = false;
function checkpw(){
var user_password = document.forms["joinform"]["user_password"].value;
if (user_password == null || user_password == "") {
text = "Password : Required";
document.getElementById("errormsg4").innerHTML = text;
error_user_password = false;
} else {
document.getElementById("errormsg4").innerHTML = "";
error_user_password = true;
}
}
function submitall() {
checkpw()
if(error_user_password == false) {
return false;
} else {
return true
}
}
</script>
</body>
<form id="joinform" method="post" name="joinform" action="#hello" onsubmit="return submitall()" >
<h2>Join</h2>
<input type="password" name="user_password" id="user_password" placeholder="Password" onblur="checkpw()" />
<div class ="errormsg" id ="errormsg4"></div><br>
<input type="submit" name="join" id="join" value="Submit" ><br><br>
</form>
</html>
Вы могли бы назвать checkpw() в submitall()? Поэтому он всегда проверяется прямо перед тем, как вы решите отправить (а также на размытие). –
Зачем нужен другой 'validatepassword()'? Вызывайте одну и ту же функцию для 'onblur' и form' submit' и возвращаете проверку 'true' или' false'. Кроме того, лучше использовать 'onchange', чем' onblur' на входе (изменение происходит до размытия). – skobaljic
@skobaljic У меня есть несколько функций, таких как checkpw(), которые я вызываю в submitall(), код, который я опубликовал, для простоты. – DragonFire