Я пытаюсь отобразить сообщение электронной почты, введенное в поле ввода адреса электронной почты, в сообщении проверки. Поле ввода также уже проверяет мою базу данных на наличие зарегистрированных электронных писем, а затем отображает сообщение в зависимости от результата. Я затем добавил этот код отсюда .
В результате валидатор вернется со своим сообщением, но с пустым интервалом для электронного письма. Если я введу ключ, электронное письмо будет отображаться в течение доли секунды, а затем исчезнет (из-за того, что валидатор перепроверил базу данных), но сообщение «Подтверждение будет отправлено» вернется, но интервал электронной почты останется пустым.
<script>
//echo typed in email
$('#youremail').keydown(function() {
$('#youremail-confirm').text($(this).val());
});
//check if the current user is already taken
$('#youremail').keyup(function(){
var user = $('#youremail').val();
var userlength = document.getElementById("youremail").value.length;
if(userlength >= 8 && userlength <= 60) {
$('.checkemail').html("");
$.ajax({
type: "GET",
url: "<?php bloginfo('template_url'); ?>/ajax/check-username.php",
data: "user=" + user,
success: function(data){
$('.checkemail').html(data);
}
});
};
});
</script>
<div class="form-label">
<label for="youremail">Email Address <i>*</i></label>
<small class="checkemail"></small>
</div>
<div class="form-input">
<input type="email" name="youremail" id="youremail" class="input longinput" value="<?php echo $youremail; ?>" />
</div> <!-- email -->
<?php
if (strlen($_GET['user']) > 3 && strlen($_GET['user']) <= 30) {
if (username_exists($_GET['user'])) { //sanitizing is done by WordPress
echo '<span class="checkusererr">This email is already used. Please <label for="lger" style="font-weight:bold;cursor:pointer;">click here log in</label> or enter another one.</span>';
} else {
echo '<span class="checkuserok">Confirmation with be sent to <span id="youremail-confirm" style="font-weight:bold;"></span></span>';
}
} ?>