Я использую Laravel в своем приложении и у меня есть вопрос о jquery выборе. В моем случае я хочу сопоставить option.value с идентификатором, и если он совпадает, пометьте option как выбранный. Вот мой код:
<select id="class" name="class" class="custom-select form-control" required>
@foreach ($classes as $class)
<option value="{{ $class->id }}"
{{ old('class_id') ?? $subject->class_id == $class->id ? 'selected' : '' }}>
{{ $class->name }}</option>
@endforeach
</select>
<select id="section" name="section" class="custom-select form-control" required>
<option value="">- -</option>
</select>
и в моем javascript, который загружается в конце страницы:
$(document).ready(function(){
var class_id = $('#class option:selected').val();
var section_id = $('#hidSectionID').val();
fetchSections(class_id);
setSection(section_id);
});
fetchSections (class_id) - это моя ajax функция, которая работает нормально и добавляет * выберите [name = "section"] * варианты с этим ответом.
<option value="1">Option 1</option><option value="2">Option 2</option>
Но моя вторая функция, которая предназначена для установки опции секции как выбранной, если она соответствует var section_id (которая идет от Laravel контроллера), не работает. Я пробовал разными способами, но это не работает:
function setSection(section_id){
// Try # 1
$("select#section option[value="+section_id+"]").prop("selected", true);
// Try # 2
$("#section").val(section_id);
// Try # 3
$("#section > option").each(function(){
if($(this).val()===section_id){
$(this).attr("selected","selected");
return false;
}
});
// Try # 4
$.each($("#section option"), function(){
// alert($(this).text() + " - " + $(this).val());
});
}
Надеюсь, я написал достаточно кода, чтобы понять эту проблему. Любая помощь будет оценена.