Laravel Javascript: функция радио кнопки «Изменить страницу», которая добавляет поле ввода, когда я нажимаю другой параметр - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть переключатель с другим параметром, который добавляет поле ввода при нажатии

, вот мой код

Просмотр:


             <div class="input-field col s4 floor_level">
                <p>
                  <label>Floor Level<h7 class="red-text">*</h7></label><br>
                  <label>
                    <input id="ground" class="with-gap" name="floor_level" type="radio" value="Ground" {{ $client->eventDetail->floor_level == 'Ground' ? 'checked' : ''}}/>
                    <span>Ground</span>
                  </label>
                </p>
                <p>
                  <label>
                    <input id="rooftop" class="with-gap" name="floor_level" type="radio" value="Rooftop" {{ $client->eventDetail->floor_level == 'Rooftop' ? 'checked' : ''}}/>
                    <span>Rooftop</span>
                  </label>
                </p>
                <p>
                  <label>
                    <input id="option" class="with-gap" name="floor_level" type="radio" value="other" {{ old('floor_level',$new_floor_level) == 'other' ? 'checked' : '' }}/>
                    <span id="otherlabel">Other</span>
                  </label>
                </p>
            </div>

Сценарий:

<script>
$(function () {
  var $select2 = $('#option');

  $select2.on('change', function (e) {

      if($(this).val()==="other"){
        $('#option').one('click', function() {
        $('.floor_level').append('<div class="added_input"><input id="floor_level_input" type="text" name="floor_level" value="{{ old('floor_level',$client->eventDetail->floor_level) }}" placeholder="Specify.." class="validate"><label for="floor_level_input">Make your own selection!</label></div>');
        $('#option').hide();
        $('#otherlabel').hide();

    });
  }

  }).change();


   $('#rooftop').change(function () {
        if($(this).val()!=="other"){
        $('.added_input').remove();
        $('#option').show();
        $('#otherlabel').show();
        }
    });

   $('#ground').change(function () {
        if($(this).val()!=="other"){
        $('.added_input').remove();
        $('#option').show();
        $('#otherlabel').show();
        }
    });

  });
</script>

Контроллер:

$client = Client::findOrFail($id);

if ($client->eventDetail->floor_level !== "Ground" AND $client->eventDetail->floor_level != "Rooftop")
        {
            $new_floor_level = "other";
        }
        else
        {
            $new_floor_level = " ";
        }

return view('admin.clients.edit', compact('client', 'new_floor_level'));

На моей странице создания этот код работает, когда я нажимаю радиокнопку «Прочее» , появляется поле ввода, а когда я нажимаю «Земля» или «Крыша», поле ввода удаляется.

Вопрос в том, как я могу показать добавленное поле ввода со значением из базы данных, если переключатель установлен по умолчанию Other на моей странице обновления , и все еще работает с событием click, которое удаляет поле ввода, когда я нажимаю Ground или Rooftop и показать его снова, когда я нажму Другое.

This photo for reference

enter image description here

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