Моя та же функция, что и функция, не дублирующая данные из полей ввода

#html #laravel

Вопрос:

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

      $("#sameas").click(function(){
                var res_unit = $("#res_unit").val();
                var red_complex = $("#red_complex").val();
                var address_1 = $("#address_1").val();
                var address_2 = $("#address_2").val();
                var suburb = $("#suburb").val();
                var city = $("#city").val();
                var province = $("#province").val();
                var code = $("#code").val();

                $("#pst_unit").val(res_unit);
                $("#pst_complex").val(red_complex);
                $("#postal_address_1").val(address_1);
                $("#postal_address_2").val(address_2);
                $("#postal_suburb").val(suburb);
                $("#postal_city").val(city);
                $("#postal_province").val(province);
                $("#postal_code").val(code);

            }); 
     #sameas {
                width: 20em;  height: 2em;
            } 
      <h4>Physical Address</h4>

                    <div class="row">
                        <div class="col-md">
                            {!!Form::text('res_unit', 'Unit Number')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('red_complex', 'Complex')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('address_1', 'Street Number')!!}
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md">
                            {!!Form::text('address_2', 'Street Name')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('suburb', 'Suburb')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('city', 'City')!!}
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            {!!Form::select('province', 'Province',Config::get('constants.Provinces'))!!}
                        </div>
                        <div class="col-md-4">
                            {!!Form::text('code', 'Code')!!}
                        </div>
                    </div>

                    <div class="row">
                        <h4>Postal Address</h4>amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;<input type='button' id="sameas" class="btn" style="text-align: center; margin-top: 10px;background-color: #b02c22fc;color: white;" value="Same as physical address" >
                    </div>

                    <div class="row">
                        <div class="col-md">
                            {!!Form::text('pst_unit', 'Unit Number')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('pst_complex', 'Complex')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('postal_address_1', 'Street Number')!!}
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md">
                            {!!Form::text('postal_address_2', 'Street Name')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('postal_suburb', 'Suburb')!!}
                        </div>
                        <div class="col-md">
                            {!!Form::text('postal_city', 'City')!!}
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            {!!Form::select('postal_province', 'Province',Config::get('constants.Provinces'))!!}
                        </div>
                        <div class="col-md-4">
                            {!!Form::text('postal_code', 'Code')!!}
                        </div>
                    </div> 

Я пытался проверить сценарий, но безрезультатно. это похоже на то, как если бы скрипт не видел, где он должен быть реализован и, следовательно, не используется. Также я не могу заставить Laravel работать в фрагменте.

Ответ №1:

Проверьте сгенерированный HTML, есть ли у него атрибут id в каждом поле? Я почти могу поспорить, что это не так.

Это связано с тем, что Form::text() вспомогательная функция по умолчанию не присваивает идентификатор.

Вам нужно либо:

  1. Используйте Form::label() функцию перед вводом, как описано здесь: https://laravelcollective.com/docs/5.2/html#labels

или

  1. Добавьте его в качестве атрибута функции, как это было бы с классом:

    Form::text('code', 'Code', ['id' => 'code'])

Комментарии:

1. для этой функции я должен быть в состоянии сделать это только с одним идентификатором «sameas», а атрибут, например «#pst_unit», не должен иметь идентификатор, поскольку атрибут уникален и, следовательно, является его собственным идентификатором .

2. Тогда ваш код неверен, $(«#res_unit»).val(); никогда ничего не найдет, если вы не укажете идентификатор в поле. Вместо этого вы должны спросить, как выбрать конкретный ввод внутри html — объекта.

3. Спасибо, я нашел проблему, в представлении не был виден мой скрипт, я не добавил его должным образом. @Erubiel я поддержал ваш комментарий и ответ.