У меня есть два выпадающих списка, и когда я нажимаю на элемент внутри первого, второй автоматически обновляется, я делаю это с JQuery. Он работает нормально, но только если в Item нет пробельных символов из первого списка, поэтому, например, если у меня есть «Some item» в качестве элемента, он ничего не будет делать, но для «item» он обновит другой список. Вот код Jquery и код Laravel PHP. Подскажите, пожалуйста, почему возникают проблемы с пробелами внутри первого выпадающего меню?
<select name="podrucje" id="select1" style='width: 150px;'>
@foreach( $projects_all as $project )
<? if ($project->name != null) { ?>
<option value="{{ $project->podrucje }}">{{ $project->name}}</option>
<? } ?>
@endforeach
</select>
Это Jquery Script для изменения элемента для первого списка:
$("#select1").change(function () {
if ($(this).data('options') == undefined) {
/*Taking an array of all options-2 and kind of embedding it on the select1*/
$(this).data('options', $('#select2 option').clone());
}
var id = $(this).val();
var options = $(this).data('options').filter('[value=' + id + ']');
$('#select2').html(options);
});
кажется, работает, если вы поместите двойные кавычки вокруг значения в вашем фильтре.
поэтому строка 7 вашего JS станет
var options = $(this).data('options').filter('[value="' + id + '"]');
посмотрите это для рабочего примера (последнее значение в выпадающем списке имело место в значении)
Вам нужно будет заключить значение фильтра в кавычки.
var options = $(this).data('options').filter('[value="' + id + '"]');