При первом вводе пароля подтверждения, а затем в поле пароля, сообщение об ошибке отображается неправильно

Вопрос:

У меня есть 2 поля – Пароль и подтверждение пароля. Если я сначала введу значение в поле подтверждения пароля, а затем введите значение в поле пароля, сообщение “Согласованный пароль”, если совпадение и “пароль не совпадают”, если необходимо отобразить несоответствие. Но сейчас это не работает для меня. Не могли бы вы помочь мне в решении этой проблемы?

Вот код – Ajax Call

$aVal = $this->get('val');

Phpfox::getService('confirmpassword')->password($aVal['password'], $aVal['password_confirm']);

if (Phpfox_Error::isPassed()) {
$this->call('$(\'#js_password_match\').css(\'background-color\', \'#00AA00\');');
$this->call('$(\'#js_password_match\').css(\'padding\', \'1.05px\');');
// $this->call('$(\'#js_password_match\').css(\'margin-left\', \'5px\');');
$this->call('$(\'#js_password_match\').html(\'' . Phpfox::getPhrase('confirmpassword.password_matched') . '\');');

return true;
}

$aErrors = Phpfox_Error::get();

$this->call('$(\'#js_password_match\').css(\'background-color\', \'#DD0000\');');
$this->call('$(\'#js_password_match\').css(\'padding\', \'1.05px\');');
//$this->call('$(\'#js_password_match\').css(\'margin-left\', \'5px\');');
$this->call('$(\'#js_password_match\').html(\'' . $aErrors[0] . '\');');

и Сервисный вызов –

public function password($sPass, $sConfirm)
{
if((strlen($pass) || strlen($sConfirm)) != 0)
{
if(strcmp($sPass, $sConfirm) != 0)
{
Phpfox_Error::set(Phpfox::getPhrase('confirmpassword.password_does_not_match'));
}
}
else
{
Phpfox_Error::set(Phpfox::getPhrase('confirmpassword.empty_password_field'));
}

return $this;
}

Ответ №1

Я просто скопирую комментарии здесь, так что в будущем справочная информация знает, что было сделано:

Hum… if((strlen($sPass) != 0 && strlen($sConfirm)) != 0)?? Я изменил $ pass для $ sPass и добавил a != 0, я также изменил || для && потому что оба должны быть пустыми, чтобы быть одинаковыми. – Себастьян

Это не работает @Sebastien Основная концепция – я буду вводить поле подтверждения пароля сначала в поле пароля. Должно отображаться сообщение “pwd matching”, если соответствие pwd и сообщение “pwd doesnt” должны отображаться, если не совпадают. – user3630920

Не могли бы вы помочь мне, если это требование – если подтверждение поля pwd содержит какое-то значение, и если я попытаюсь ввести какое-то значение в поле pwd, тогда подтвердите, что поле pwd должно быть опустошено. – user3630920

Вам нужно будет сделать что-то javascript/jquery в строках $('#passwordFieldID').on('focus', function(){$('#ConfirmFieldsID').val('')}); – Себастьян

Оцените статью
TechArks.Ru
Добавить комментарий