Есть форма:
<div id="text_error_regform"></div>
<div class="registration_form">
<form method="post" action="index.php?route=action/registration" class="form_data">
<div class="form-group"><input type="text" name="name" id="name" class="form-control" placeholder="<?=$data['form_name_text']?>" /></div>
<div class="form-group"><input type="text" name="lastname" id="lastname" class="form-control" placeholder="<?=$data['form_lastname_text']?>" /></div>
<div class="form-group">
<div class="user_type">
<input type="radio" name="user" value="privat" /> <span class="radio_user"><?=$data['form_privat_radio']?></span>
<input type="radio" name="user" value="giuridica" /> <span class="radio_user"><?=$data['form_giuridica_radio']?></span>
</div>
</div>
<div class="form-group"><input type="text" name="iva" class="form-control" id="iva" style="display: none;" placeholder="<?=$data['form_iva_text']?>" /></div>
<div class="form-group"><input type="email" name="email" class="form-control" id="email" placeholder="E-mail ..." /></div>
<div class="form-group"><input type="text" name="login" class="form-control" id="reglogin" placeholder="<?=$data['form_login_text']?>" /></div>
<div class="form-group"><input type="password" name="pass" class="form-control" id="regpass" placeholder="<?=$data['form_pass_text']?>" /></div>
<div class="form-group"><input type="text" name="mobile" class="form-control" id="mobile" placeholder="<?=$data['form_mobile_text']?>" /></div>
<div class="form-group"><input type="text" name="town" class="form-control" id="town" placeholder="<?=$data['form_town_text']?>" /></div>
<div class="send"><input type="submit" name="register_user" value="<?=$data['btn_register']?>" /></div>
</form>
</div>
Обработчик данных на сервере:
private function RegistrationUser($params) {
require $this->language->getLanguage('messages');
if ($params['login'] == "" or !$this->valid->validLogin($params['login'])) $message = $lang['message_error_login'];
if ($params['pass'] == "") $message = $lang['message_error_pass'];
if ($params['name'] == "" or !$this->valid->isOnlyLetters($params['name'])) $message = $lang['message_error_name'];
if ($params['lastname'] == "" or !$this->valid->isOnlyLetters($params['lastname'])) $message = $lang['message_error_lastname'];
if (!isset($params['user'])) {
$message = $lang['message_error_user'];
} else {
if ($params['user'] == "giuridica") {
$message = $lang['message_error_iva'];
} else {
$params['iva'] = '0';
}
}
if($params['email'] == "" or !$this->valid->validEmail($params['email'])) $message = $lang['message_error_email'];
if($params['town'] == "" or $this->valid->isOnlyLetters($params['towm'])) $message = $lang['message_error_town'];
if($params['mobile'] == "" or !$this->valid->isOnlyNumbers($params['mobile'])) $message = $lang['message_error_mobile'];
if (isset($message)) return $message;
else return true;
}
И есть ajax (который должен был быть универсальным, но я так смотрю что универсальным ему не быть):
$(document).ready(function() {
$('.form_data').on('submit', function(e){
e.preventDefault();
var $that = $(this),
fData = $that.serialize();
$.ajax({
url: $that.attr('action'),
type: $that.attr('method'),
data: {form_data: fData},
dataType: 'json',
success: function(json){
if(json.Error) {
document.getElementById('text_error_form').innerHTML = json.Error;
} else if(json.Success != null) {
$('#text_error_form').remove();
$('.form_data').replaceWith(json.Success);
}
}
});
});
});
Чего я хочу добиться но не получается:
Когда пользователь заполняет форму регистрации чтоб проверялись в реальном времени (keyup) поля name, lastname, когда пользователь выбирает radiobox типа giuridica, тогда должно появиться поле iva (по умолчанию оно скрыто) и так же проверка в реальном времени на заполненность. Такая же проверка email. Если почта введена корректно, то должно отправиться сразу письмо с номером активации на этот адрес и ниже появиться поле, в которое пользователь вставит этот номер и так же в реальном времени подтвердит свой адрес. После этого простая проверка остальных полей так же в реальном времени.
На php это все работает. Помогите сделать это на javascript
Может вам поможет jQuery Validator
Вещаете его на форму, для проверки введенных данных.
Письма не всегда доходят быстро, по этому не нужно в вашей форме добавлять поле с вводом кода. Лучше ссылку в письме для подтверждения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости