JavaScript или JQuery Возьмите правильное выбранное значение из опций выбора из нескольких таблиц выбора, созданных для цикла - PullRequest
0 голосов
/ 04 июля 2018

Я пытался получить решения от Google и ранее задаваемые вопросы, но вопросы и ответы касаются только одного выбора с несколькими вариантами. Чтобы уточнить, когда я генерирую код thro для цикла для создания множественного выбора на экране, а затем использую JavaScript для получения selectedIndex или значения и использую оповещение, чтобы проверить, выбрано ли правильное значение, тогда только значение из выбранного параметра из первой таблицы выбора, сгенерированной для цикл показывается повторным. Пожалуйста, найдите код


<body>
  <script>

    // JSON code getting g named array throgh JSON.parse method
    for (g=0; g<m.length; g++) {
      n += "  <select id=\"mySelect\" onchange=\"myFunction()\">";
      n += "    <option> - Select Option - </option>";
      n += "<option>A</option>";
      n += "    <option>B</option>";
      n += "    <option>C</option>";
      n += "    <option>D</option>";
      n += "  </select>";
    } // end of for loop

    document.getElementById("demo").innerHTML = n;   

    // in between some code

    function myFunction() {
      var y = document.getElementById("mySelect");
      var j = y.selectedIndex;
      var b = y.options[j].text;
      alert ("Your answer is: " + b);
    } // end of myFunction
  </script>
  <p id="demo"></p>
</body>

когда выполнить этот код, например if (arrayG.length is 5), тогда опция выбора отображается на экране пять раз, это прекрасно, когда мы выбираем опцию из первой петли выбора опций, предупреждение показывает идеальный выбранный вариант. например если мы выбираем C из первого выбора, то в оповещении отображается C, но когда мы выбираем опции из четырех других элементов выбора, они по-прежнему показывают C, т.е. выбранную опцию из первых элементов select.

мы хотим, чтобы наш код отображал выбранные справа опции из 5 различных элементов select, сгенерированных выше для цикла.

просьба помочь, так как мы много добывали для ответа.

С уважением,

Гурупрасад

1 Ответ

0 голосов
/ 11 июля 2018

Как намекал Cbroe, вам нужно передать элемент select методу 'this', а затем использовать эту ссылку, чтобы найти выбранное значение.

var m = 3;
var n = "";
// JSON code getting g named array throgh JSON.parse method
for(g=0; g<m; g++) {
  n += "  <select id=\"mySelect" 
  n += g;
  n += "\" onchange=\"myFunction(this)\">";
  n += "    <option> - Select Option - </option>";
  n += "<option>A</option>";
  n += "    <option>B</option>";
  n += "    <option>C</option>";
  n += "    <option>D</option>";
  n += "  </select>";
} // end of for loop

document.getElementById("demo").innerHTML = n;   

// in between some code

function myFunction(element) {
  var j = e.selectedIndex;
  var b = e.options[j].text;
  alert ("Your answer is: " + b);
} // end of myFunction

jsbin demo

Или вы можете передать индекс и найти его с помощью идентификатора.

var m = 3;
var n = "";

// JSON code getting g named array throgh JSON.parse method
for(g=0; g<m; g++) {
  n += "  <select id=\"mySelect" 
  n += g;
  n += "\" onchange=\"myFunction(";
  n += g;
  n += ")\">";
  n += "    <option> - Select Option - </option>";
  n += "<option>A</option>";
  n += "    <option>B</option>";
  n += "    <option>C</option>";
  n += "    <option>D</option>";
  n += "  </select>";
} // end of for loop

document.getElementById("demo").innerHTML = n;   

// in between some code

function myFunction(index) {
  var y = document.getElementById("mySelect" + index);
  var j = y.selectedIndex;
  var b = y.options[j].text;
  alert ("Your answer is: " + b);
} // end of myFunction

jsbin demo

По вашей структуре кода / вопроса очень ясно, что вы не способны работать с основами JavaScript. Вам нужно будет пройти несколько вводных курсов по javascript, иначе вы будете продолжать много бороться и делать много плохого кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...