Пытается получить несколько значений поля ввода с одним и тем же именем в Spring Boot - PullRequest
0 голосов
/ 10 декабря 2018

Мое поле ввода

Some JS to populate phone number fields

In my Controller only first input is showing?

Мой вопроскак я могу получить все значения из полей Name = "phone"

Should get these values, only getting first value

JS

<script>
    $(function(){

        $(document.body).on('click', '.changeType' ,function(){
            $(this).closest('.phone-input').find('.type-text').text($(this).text());
            $(this).closest('.phone-input').find('.type-input').val($(this).data('type-value'));
        });

        $(document.body).on('click', '.btn-remove-phone' ,function(){
            $(this).closest('.phone-input').remove();
        });


        $('.btn-add-phone').click(function(){

            var index = $('.phone-input').length + 1;

            $('.phone-list').append(''+
                '<div class="input-group phone-input">'+
                '<input type="number" name="phone" class="form-control" placeholder="(999) 999 9999" />'+
                '<span class="input-group-btn">'+
                '<button class="btn btn-danger btn-remove-phone" type="button"><span class="glyphicon glyphicon-remove"></span></button>'+
                '</span>'+
                '</div>'
            );

        });

    });</script>

HTML

<div class="col-sm-10">

                        <div class="phone-list">

                            <div class="input-group phone-input">
                                    <span class="input-group-btn">
                                    </span>
                                <input type="number" name="phone" class="form-control" placeholder="(999) 999 9999"  required=""/>
                            </div>

                        </div>


                        <button type="button" class="btn btn-success btn-sm btn-block btn-add-phone"><span class="glyphicon glyphicon-plus"></span> Add Phone</button>
                    </div>

Контроллер

   @PostMapping("/applicant")
   public String saveApplicantToDb(
       @Valid @ModelAttribute Applicant applicant, 
       @RequestParam("phone") int[] phone
   ) {
        if (phone!= null)
        System.out.println(phone.length);

        _applicantRepository.save(applicant);

        return "applicant";
    }

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Проблема была в том, что имя должно совпадать с атрибутом вашей модели. Однако я ожидал, что тип массива int [] будет виден, но он посылает мне решенную проблему с массивом типа String [], а также убедитесь, что ваш код JS заполняет поля ввода правильно[особенно name = 'field_name'] должно соответствовать атрибуту вашей модели.Проверьте его в браузере -> проверить и свернуть div и увидеть имя поля ввода

0 голосов
/ 10 декабря 2018

Вы используете несколько полей ввода с одним и тем же именем «телефон», и это не проблема, и это должно отражаться на входе @Param («телефон»), но вы должны убедиться, что телефонвходные данные должны быть целочисленного типа, например, ваш заполнитель совершенно неправильный (999) 999 9999. также новый добавленный телефон не является целым числом.Поэтому убедитесь, что они являются целыми числами

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