Заполните поле имени пользователя на основе ввода имени и фамилии - PullRequest
1 голос
/ 25 июня 2019

Прежде всего, спасибо всем, кто может помочь.

Я хотел бы заполнить поле имени на основе поля first_name & last_name.

Я могу представить, что решениепросто, но я не очень разбираюсь в JavaScript.

Решение может быть основано на Vanilla JS или Jquery

  <form method="POST" action="{{ route('register') }}" id="loginForm">
    @csrf
    <div class="form-group mb10">
      <div class="input-group">
        <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="test" placeholder="{{ __('Username') }}" required autofocus>
        @if ($errors->has('name'))
        <span class="invalid-feedback">
            <strong>{{ $errors->first('name') }}</strong>
        </span>
        @endif
      </div>
    </div>
    <div class="form-group mb10">
      <div class="input-group">
        <input id="first_name" type="text" class="form-control{{ $errors->has('first_name') ? ' is-invalid' : '' }}" name="first_name" value="{{ old('first_name') }}" placeholder="{{ __('First Name') }}" required autofocus>
        @if ($errors->has('first_name'))
        <span class="invalid-feedback">
            <strong>{{ $errors->first('first_name') }}</strong>
        </span>
        @endif
      </div>
    </div>
    <div class="form-group mb10">
      <div class="input-group">
        <input id="last_name" type="text" class="form-control{{ $errors->has('last_name') ? ' is-invalid' : '' }}" name="last_name" value="{{ old('last_name') }}" placeholder="{{ __('Last Name') }}" required autofocus>
        @if ($errors->has('last_name'))
        <span class="invalid-feedback">
            <strong>{{ $errors->first('last_name') }}</strong>
        </span>
        @endif
      </div>
    </div>
    <div class="form-group mb10">
      <div class="input-group">
        <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" placeholder="{{ __('E-Mail Address') }}" required>
        @if ($errors->has('email'))
        <span class="invalid-feedback">
            <strong>{{ $errors->first('email') }}</strong>
        </span>
        @endif
      </div>
    </div>
    <div class="form-group">
      <div class="input-group mb10">
        <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('Password') }}" required>
        @if ($errors->has('password'))
        <span class="invalid-feedback">
            <strong>{{ $errors->first('password') }}</strong>
        </span>
        @endif
      </div>
    </div>
    <div class="form-group mb10">
      <div class="input-group">
        <input id="password-confirm" type="password" class="form-control" name="password_confirmation" placeholder="{{ __('Confirm Password') }}" required>
      </div>
    </div>
    <div class="form-group mb10">
      <div class="input-group">
        <button type="submit" class="btn btn-success btn-quirk btn-block">
          {{ __('Register') }}
        </button>
      </div>
    </div>
  </form>

1 Ответ

1 голос
/ 25 июня 2019

Фрагмент ниже обновляет вход #name значениями от #first_name и #last_name до keyup в любом поле.

Обратите внимание, что я использовал троичный оператор для установкизначение переменной space. Я сделал это, чтобы предотвратить добавление постороннего пространства в поле #name, если первое или последнее пусто.

function createName() {
  let first_name = $("#first_name").val();
  let last_name = $("#last_name").val();
  let space = (first_name == "" || last_name == "") ? "":" ";
  let full_name = first_name + space + last_name;
  $("#name").val(full_name);
}

$("#first_name, #last_name").keyup(function() {
  createName();
});

// if you want this function to run when the page loads,
// just call the function once outside of the keyup event
createName();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Name: <input type="text" id="name"><br>
First Name: <input type="text" id="first_name"><br>
Last Name: <input type="text" id="last_name">

Я понимаю, что HTML не является вашим точным воспроизведением, но я чувствовал, что это добавит ненужную сложность решению.Все, что вам действительно нужно, это jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...