2014-11-15 4 views
1

ok Я пытаюсь понять это сейчас в течение 2 дней, и это просто не имеет для меня никакого смысла. поэтому у меня есть регистрационная форма, имя пользователя, адрес электронной почты, пароль и пароль для повторного ввода пароля. каждый вход имеет JavaScript, который на каждой клавиатуре отправляет пользователей на php, где он проверяет его, и будет отображать «Хорошо» в div под паролем div - «password_feedback» (все это работает отлично, если я набираю правильный пароль, он будет дисплей «хорошо» в разделе «password-feedback»)javascript не diplaying innerHTML

затем у меня есть JavaScript, чтобы узнать, что находится в «password_feedback». «оператор if» отобразит «good» в div «check2», если «password_feedback» == «Хорошо», иначе он отображает «плохо». но это не работает, он всегда будет показывать «плохо».

Теперь вот странная часть. Я делаю то же самое для всех 4 входов (повторно введите пароль не идет на php только java) и «имя пользователя» и «повторно введите пароль», как работа, электронная почта, так и пароль. не. если я изменю

var password_good = document.getElementById ('password_feedback'). innerHTML;

к

вар password_good = document.getElementById ('обратной связи') innerHTML. (обратная связь с именем пользователя вместо пароля feedabck)

тогда он будет работать для имени пользователя. снова «password_feedback» будет отображать «Хорошо», как это должно быть, чтобы это работало.

в javascript, если я заменю все данные паролей информацией о имени пользователя, он будет работать, чтобы я знал, что ity работает нормально. Я даже не могу предположить, почему это не работает для пароля, но для имени пользователя. iv попробовал все, что я могу придумать, я сократил страницу, поэтому он только проверяет пароль. Маби кто-то знает, чего я не знаю.

<script type="text/javascript" src="jquery.js"></script> 
 
<script type="text/javascript"> 
 
$(document).ready(function(){ 
 
\t $('#password_feedback').load('password-check.php').show(); 
 
\t 
 
\t $('#password_input').keyup(function(){ 
 
\t \t //username: is name of variable sent to php, form is name of form, username is name of input 
 
\t \t $.post('password-check.php', { password: form.password.value}, 
 
\t \t function(result) { 
 
\t \t \t $('#password_feedback').html(result).show(); 
 
\t \t }); 
 
\t \t 
 
\t }); 
 
}); 
 
</script> 
 

 
<!-- begin snippet: js hide: false -->

<script type='text/javascript'> 

    function check_info1(){ 
    var password_good = document.getElementById('password_feedback').innerHTML; 

     if(password_good == "Good"){ 
    document.getElementById("check2").innerHTML = "good"; 
    } 
    else{ 
     document.getElementById("check2").innerHTML = "bad "; 
    } 
     } 


</script> 
<form name="form" onKeyUp="check_info()" onMouseUp="check_info1()" > 

    Username:<br /> 
    <input type="text" id="username_input" name="username"><div id="feedback"> </div> 

    E-mail:<br/> 
    <input name="email" type="text" id="email_input" value=""><div id="email_feedback"> </div> 

    Password:<br/> 
    <input name="password" type="password" id="password_input" value=""><div id="password_feedback"></div> 

    Re-enter Password:<br/> 
    <input name="password2" type="password" id="password_retype" value=""><div id="password_feedback2"> </div> 

    <input type="submit" value="Submit" class="login_btn"/> 

    </form> 
    <div id="check"></div> 
    <div id="check2"></div> 
$connect = mysqli_connect("localhost", "????", "????","?????"); 

if (mysqli_connect_errno()){ 
    echo "failed" . mysqli_connect_error(); 
} 




$password = mysqli_real_escape_string($connect, $_POST['password']); 
$check = mysqli_query($connect,"SELECT password FROM users WHERE password='$password'"); 
$check_num_rows = mysqli_num_rows($check); 


if ($password==NULL) 
echo "enter a password"; 


else if(preg_match('~[A-Z]~', $password) && 
    preg_match('~[a-z]~', $password) && 
    preg_match('~\d~', $password) && 
    (strlen($password) > 6)){ 
    echo "Good"; 
} else { 
    echo "Not good enough"; 
} 


?> 

ответ

0

Попробуйте изменить тип входного = "пароль" для типа ввода = "текст":

Пароли в браузерах обрабатываются по-разному, поэтому из-за этого у вас могут возникнуть конфликты с просмотром результатов. Вы можете попытаться захватить поле пароля с помощью KeyUp и символ, используемый, но это неаккуратно по нескольким причинам:

  • не все символы, которые захвачены этим событием одни и те же во всех браузерах (даже подмножества символов, не могут использовать этот событие)
  • вы должны использовать структуру данных и убедитесь, что он соответствует полю

вы лучше просто с помощью $ (вход) функции .val() для сохранения в качестве пароля каждый раз, когда KeyUp , нажатия клавиш или изменения событий.

+0

благодарит за предложение, но не работает.Я бы не подумал, что это повлияло бы на это, ответ div, который просматривает java, отображается правильно, java просто не хочет его распознавать. – mike

+0

попробуйте событие «изменить» или «нажатие» вместо ключевого слова – mgwhitfield

+0

iv пробовал всевозможные функции, а повторный пароль - тот же, и ищет тот же «Хороший» только другой div, и это работает. – mike

Смежные вопросы