У меня есть тег выбора опции, где пользователь выбирает нужную опцию в раскрывающемся списке.
<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>
@charlietfl Насколько я понимаю, это #reviewFormPage и #reviewForm.
@charlietfl Я имею в виду, как будто я получаю DOM] Found 2 elements with non-unique id #businessId .... Два элемента div выбора имеют абсолютно одинаковую форму с одинаковыми полями, но разными метками.
Вместо этого используйте класс
@ User101 Я согласен с Чарли, есть ли конкретная причина, по которой в этом случае вам нужно использовать идентификатор вместо класса?
@LinusJuhlin ошибки находятся в полях формы, например, в текстовых полях ..... Я думаю, загружаются два варианта выбора. Вопрос в том, можете ли вы отключить загрузку одного до тех пор, пока он не будет выбран, чтобы избежать конфликта?
@charlietfl где именно?
@ User101, такое ощущение, что вы излишне усложняете это для себя. Вы не можете использовать класс вместо идентификатора в этом случае?
@LinusJuhlin, не могли бы вы указать, где я могу это использовать?
{!! Form::hidden('business_name', $provider->businessId, ['class'=>'form-control', 'id' => 'businessId']) !!} Изменить 'id' => 'businessId' на 'class' => 'businessId'


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если у вас нет причин для использования идентификатора, тогда, согласно моему комментарию, я предлагаю вам изменить свои идентификаторы на классы.
В
{!! Form::hidden('business_name', $provider->businessId, ['class'=>'form-control', 'id' => '']) !!}
Удалите 'id' => 'businessId' и добавьте 'businessId' к ключу class.
необходимо объединить с существующим классом
Ммм... Идентификатор в данном случае является уникальной идентификацией... Мне это нужно
Ну да ладно, вы в основном объясняете, что такое id в HTML, но вы не дали понять, зачем он нужен в вашем приложении.
Непонятно из того, что показано, где вы дублируете идентификаторы. Предоставьте только HTML-представление проблемы (без кода на стороне сервера) в соответствии с минимальный воспроизводимый пример.