JavaScript для формы

181
13 июля 2017, 02:31

Есть форма:

<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

Answer 1

Может вам поможет jQuery Validator
Вещаете его на форму, для проверки введенных данных.

Письма не всегда доходят быстро, по этому не нужно в вашей форме добавлять поле с вводом кода. Лучше ссылку в письме для подтверждения

READ ALSO
Обновление переменной из сокета

Обновление переменной из сокета

Есть код который складывает данные из массивов

171
Почему не входит в чат?

Почему не входит в чат?

Есть такой код:

190
Перехват js события в WKWebView

Перехват js события в WKWebView

Добрый день! Пытаюсь перехватить ЛЮБОЕ onclick событие в WKWebViewВесь сайт работает посредством js запросов, так что в func webView(_ webView: WKWebView, decidePolicyFor...

175
Не работает скрипт jq

Не работает скрипт jq

Добрый день! Есть скрипт:

213