Найдено 2 элемента с неуникальным идентификатором. Загрузка выбранного div только во избежание конфликта

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

<div class = "button dropdown"> 
  <select id = "languageselector">
     <option value = "english">English</option>
     <option value = "swahili">Swahili</option>
  </select>
</div>

Я заметил, что, поскольку я повторно использую одни и те же идентификаторы, он дает сбой и выдает предупреждения [DOM] Found 2 elements with non-unique id. Первый вариант загружается хорошо, но второй вариант не загружается правильно, выдавая [DOM] Found 2 elements with non-unique id.

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

<div class = "button dropdown"> 
  <select id = "languageselector">
     <option value = "english">English</option>
     <option value = "swahili">Swahili</option>
  </select>
</div>

 <div id = "english" class = "language english">
        <form id = "reviewForm" method = "POST" action = "/review/post">
        <div id = "reviewFormPage">
        {!! csrf_field() !!}
        {!! Form::hidden('business_name', $provider->businessId, ['class'=>'form-control', 'id' => 'businessId']) !!}
        {!! Form::hidden('acceptTerms', null, ['class'=>'form-control', 'id' => 'acceptTerms']) !!}
            <div class = "row">
                <div class = "col-xs-12">
                    <div class = "checkbox icheck">
                        <label>
                        {!! Form::checkbox('existing_customer', '1', false, ['id' => 'existing_customer_review']) !!}
                            I am an existing customer.
                        </label>
                    </div>
                </div>
            </div>
       </form>
 </div>


 <div id = "swahili" class = "language swahili">
        <form id = "reviewForm" method = "POST" action = "/review/post">
        <div id = "reviewFormPage">
        {!! csrf_field() !!}
        {!! Form::hidden('business_name', $provider->businessId, ['class'=>'form-control', 'id' => 'businessId']) !!}
        {!! Form::hidden('acceptTerms', null, ['class'=>'form-control', 'id' => 'acceptTerms']) !!}
            <div class = "row">
                <div class = "col-xs-12">
                    <div class = "checkbox icheck">
                        <label>
                        {!! Form::checkbox('existing_customer', '1', false, ['id' => 'existing_customer_review']) !!}
                            Mimi ni mteja anayerudi.
                        </label>
                    </div>
                </div>
            </div>
       </form>
 </div>

Код JavaScript приведен ниже;

<script type = "text/javascript">
    $(function() {
      $('#languageselector').change(function(){
        $('.language').hide();
        $('#' + $(this).val()).show();
      });
    });
</script>

Непонятно из того, что показано, где вы дублируете идентификаторы. Предоставьте только HTML-представление проблемы (без кода на стороне сервера) в соответствии с минимальный воспроизводимый пример.

charlietfl 12.02.2019 02:47

@charlietfl Насколько я понимаю, это #reviewFormPage и #reviewForm.

Linus Juhlin 12.02.2019 02:50

@charlietfl Я имею в виду, как будто я получаю DOM] Found 2 elements with non-unique id #businessId .... Два элемента div выбора имеют абсолютно одинаковую форму с одинаковыми полями, но разными метками.

User101 12.02.2019 02:50

Вместо этого используйте класс

charlietfl 12.02.2019 02:51

@ User101 Я согласен с Чарли, есть ли конкретная причина, по которой в этом случае вам нужно использовать идентификатор вместо класса?

Linus Juhlin 12.02.2019 02:51

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

User101 12.02.2019 02:53

@charlietfl где именно?

User101 12.02.2019 02:53

@ User101, такое ощущение, что вы излишне усложняете это для себя. Вы не можете использовать класс вместо идентификатора в этом случае?

Linus Juhlin 12.02.2019 02:54

@LinusJuhlin, не могли бы вы указать, где я могу это использовать?

User101 12.02.2019 02:56
{!! Form::hidden('business_name', $provider->businessId, ['class'=>'form-control', 'id' => 'businessId']) !!} Изменить 'id' => 'businessId' на 'class' => 'businessId'
Linus Juhlin 12.02.2019 02:57
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
10
1 788
1

Ответы 1

Если у вас нет причин для использования идентификатора, тогда, согласно моему комментарию, я предлагаю вам изменить свои идентификаторы на классы.

В

{!! Form::hidden('business_name', $provider->businessId, ['class'=>'form-control', 'id' => '']) !!}

Удалите 'id' => 'businessId' и добавьте 'businessId' к ключу class.

необходимо объединить с существующим классом

charlietfl 12.02.2019 03:03

Ммм... Идентификатор в данном случае является уникальной идентификацией... Мне это нужно

User101 12.02.2019 03:09

Ну да ладно, вы в основном объясняете, что такое id в HTML, но вы не дали понять, зачем он нужен в вашем приложении.

Linus Juhlin 12.02.2019 03:57

Другие вопросы по теме