#javascript #html
#javascript #HTML
Вопрос:
У меня проблема с возвращаемым значением в js. Мне нужно вернуть его, потому что я хочу использовать его в
var rusiavimas = selectedServices();
Итак, моя функция выглядит следующим образом.
function selectedServices()
{
var selectedServices = [];
$('.common_change').change(function(){
selectedServices = $(this).val();
alert(selectedServices);
});
return selectedServices;
}
Мой HTML-код
<select name="rusiavimas" class="common_change" id="cars">
<option value="none" selected disabled hidden>
Pasirinkite variantą
</option>
<option value="naujausi">Naujausi viršuje</option>
<option value="pigiausi" >Pigiausi viršuje</option>
<option value="brangiausi">Brangiausi viršuje</option>
</select>
Затем я выбираю опцию, в функции оповещения я получаю правильное значение, но в моем возврате оно не возвращает его.
Комментарии:
1. Используйте это
selectedServices.push($(this).val());
вместо этогоselectedServices = $(this).val();
. 2-й — перезаписать массив до одного значения2. спасибо, он вернется
Ответ №1:
Ваш код содержит много проблем, я пытаюсь исправить их ниже
Ваш JS-скрипт всегда возвращает пустой массив, потому что при вызове функции var rusiavimas = selectedServices();
внутренняя .change
функция не запускается и не изменяет значение массива
var selectedServices = [];
$('.common_change').change(function(){
selectedServices.push($(this).val());
if(selectedServices.length > 0){
alert("selected service: " selectedServices.toString());
}
console.log(selectedServices);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="rusiavimas" class="common_change" id="cars">
<option value="none" selected disabled hidden>
Pasirinkite variantą
</option>
<option value="naujausi">Naujausi viršuje</option>
<option value="pigiausi" >Pigiausi viršuje</option>
<option value="brangiausi">Brangiausi viršuje</option>
</select>
Ответ №2:
Каждый раз после изменения вашего массива он присваивает вашему массиву последнее общее значение.
Лучший способ, как было сказано, использовать комментарии selectedSerices.push($(this).val());
Вы также можете использовать глубокое копирование, что в вашем случае не рекомендуется selectedSerices = [...selectedSerices, $(this).val()]
. Я думаю, это вам поможет!