Показать сообщение отдельно
  #1 (permalink)  
Старый 20.11.2020, 11:21
Аспирант
Отправить личное сообщение для maplol123@gmail.com Посмотреть профиль Найти все сообщения от maplol123@gmail.com
 
Регистрация: 30.06.2019
Сообщений: 41

Сохранение значения select option при смене radio
Как сделать так, чтоб при смене radio, сохранялось то значение в select, которое было выбрано ранее. Например, если Ширина выбрана 150 у radio с "Нет", то при выборе radio с "1 сторона", выводило в select такую же Ширину 150.
И если выбран такой radio, у которого нет одинаковых значений с другим radio, то подбиралась похожее. Например, если Ширина выбрана 170 у radio с "Нет", то при выборе radio с "1 сторона", выводило Ширину 150.
<div class="print_bag">
  <label>
    <input class="radio_g" type="radio" name="field2" value="0">
    <p>Нет</p>
  </label>
  <label>
    <input class="radio_g" type="radio" name="field2" value="1">
    <p>1 сторона</p>
  </label>
</div>
<div class="fourth_param" title="Выберите размеры для изделия">
  <div class="settings">
    <label>
      <h1>Высота, мм</h1>
      <select id="param_0">
      </select>
    </label>
    <label>
      <h1>Ширина, мм</h1>
      <select id="param_1">
      </select>
    </label>
    <label>
      <h1>Боковина, мм</h1>
      <select id="param_2">
      </select>
    </label>
    <label>
      <h1>Дно, мм</h1>
      <select id="param_3">
      </select>
    </label>
    <label>
      <h1>Длина ручки, мм</h1>
      <select id="param_4">
      </select>
    </label>
    <label>
      <h1>Плотность, г/м2</h1>
      <select id="param_5">
      </select>
    </label>
  </div>
  <hr>
</div>

jquery
let text = [
    {
      bag_print: "NONE",
      bag_height: "NONE",
      bag_width: "NONE",
      bag_sidewall: "",
      bag_bottom: "",
      bag_hangle_length: "NONE",
      bag_density: "NONE",
    },
  ];

$('input[name="field2"]').on("click", function() {
            text[0].bag_print = $(this).next("p").text();
            
            text[0].bag_print = text[0].bag_print[0].replace(/\s+/g, " ").trim();
            console.log(text[0].bag_print)
            //БЕЗ ПЕЧАТИ
            if (text[0].bag_print == "Н") {
                height = [];
                width = [];
                bottom = [];
                sidewall = [];
                hangle_length = [];
                density = [];
                for (let i = 200; i <= 580; i += 10) {
                    height.push(i);
                }
                $("#param_0").empty();
                $.each(height, function(key, value) {
                    $("#param_0").append($("<option></option>").attr("value", key).text(value));
                });
                for (let i = 100; i <= 800; i += 10) {
                    width.push(i);
                }
                $("#param_1").empty();
                $.each(width, function(key, value) {
                    $("#param_1").append($("<option></option>").attr("value", key).text(value));
                });
                $("#param_3").empty();
                $("#param_2").empty();
                $("#param_4").empty();
                for (let i = 40; i <= 120; i += 5) {
                    density.push(i);
                }
                $("#param_5").empty();
                $.each(density, function(key, value) {
                    $("#param_5").append($("<option></option>").attr("value", key).text(value));
                });
                text[0].bag_height = $("#param_0 option:selected").text();
                text[0].bag_width = $("#param_1 option:selected").text();
                text[0].bag_sidewall = "";
                text[0].bag_bottom = "";
                text[0].bag_hangle_length = "";
                text[0].bag_density = $("#param_5 option:selected").text();
            }
            //С ПЕЧАТЬЮ
            else if (text[0].bag_print == "1") {
                height = [];
                width = [
                    100,
                    150,
                    200,
                    225,
                    250,
                    300,
                    350,
                    400,
                    450,
                    500,
                    550,
                    600,
                    700,
                ];
                sidewall = [];
                bottom = [];
                hangle_length = [];
                density = [];
                for (let i = 200; i <= 580; i += 10) {
                    height.push(i);
                }
                $("#param_0").empty();
                $.each(height, function(key, value) {
                    $("#param_0").append($("<option></option>").attr("value", key).text(value));
                });
                $("#param_1").empty();
                $.each(width, function(key, value) {
                    $("#param_1").append($("<option></option>").attr("value", key).text(value));
                });
                $("#param_3").empty();
                $("#param_2").empty();
                $("#param_4").empty();
                for (let i = 40; i <= 120; i += 5) {
                    density.push(i);
                }
                $("#param_5").empty();
                $.each(density, function(key, value) {
                    $("#param_5").append($("<option></option>").attr("value", key).text(value));
                });
                text[0].bag_height = $("#param_0 option:selected").text();
                text[0].bag_width = $("#param_1 option:selected").text();
                text[0].bag_sidewall = "";
                text[0].bag_bottom = "";
                text[0].bag_hangle_length = "";
                text[0].bag_density = $("#param_5 option:selected").text();
            }
        })

Чтоб нагляднее было
https://jsfiddle.net/xgbqvp97/1/
Ответить с цитированием