У меня есть форма с 4 наборами из 4 комбинированных списков, которые видны, когда сделаны разные выборы. Я хотел бы, чтобы 4 набора комбинированных списков помещали данные в 4 ячейки таблицы (по одной на каждый набор), игнорируя при этом остальные 3 пустых комбинированных списка.
Коробки выложены как показано ниже;
Lab set 1 - Sample Type 1 - Sample Type 2 - Sample Type 3 - Sample Type 4
Lab set 2 - Sample Type 5 - Sample Type 6 - Sample Type 7 - Sample Type 8
Lab set 3 - Sample Type 9 - Sample Type 10 - Sample Type 11 - Sample Type 12
Lab set 4 - Sample Type 13 - Sample Type 14 - Sample Type 15 - Sample Type 16
Только один выбор может быть сделан для каждой лабораторной установки в любое время, поэтому, если выбраны тип образца 1, тип образца 5, тип образца 11 и тип образца 12, остальные типы образцов будут иметь значение NULL.
Я хотел бы, чтобы в каждом лабораторном наборе была только одна ячейка таблицы, чтобы впоследствии было легче отобразить данные, можно ли игнорировать нулевые значения и заполнить ячейки лабораторного набора 1, 2, 3, 4 только выбранными ячейками данные или я пытаюсь сделать невозможное?
Вот моя попытка кодирования одного из списков со отключенным свойством и скрытой видимостью;
<select name="Lab1" id="Lab1" style="visibility:hidden;" onChange="if (this.value=='Alpha Bio Labs'){this.form['Samp1'].style.visibility='visible'}if (this.value=='Alpha Bio Labs'){this.form['Samp2'].style.visibility='hidden'}if (this.value=='Alpha Bio Labs'){this.form['Samp1'].prop.disabled='false'}if (this.value=='Alpha Bio Labs'){this.form['Samp2'].prop.disabled='true'}">
<option selected>Lab</option>
<option value="Alpha Bio Labs">Alpha Bio Labs</option>
<option value="Cellmark">Cellmark</option>
<option value="DNA Legal">DNA Legal</option>
<option value="The Doctors Lab">The Doctors Lab</option>
</select>
Кодировка onChange для видимости приведена ниже;
//visible
if (this.value=='Alpha Bio Labs'){this.form['Samp1'].style.visibility='visible'}
//hidden
if (this.value=='Alpha Bio Labs'){this.form['Samp2'].style.visibility='hidden'}
Я написал дополнительный набор функций, которые читаются следующим образом;
//Active
if (this.value=='Alpha Bio Labs'){this.form['Samp1'].prop.disabled='false'}
//Not Active
if (this.value=='Alpha Bio Labs'){this.form['Samp2'].prop.disabled='true'}
Приведенный выше код будет проходить вдоль видимого кода, так как я хочу, чтобы неактивные функции были невидимыми, а мои тесты показывают, что неактивные функции все еще будут видны.
Я наткнулся на некоторый Javascript онлайн и попытался привести его в соответствие, я поместил код ниже;
var visopt = document.getElementsById('Samp1');
for(var strUser = visopt.options [visopt.selectedIndex] .style.visibility;) {
if(strUser.style.visibility='visible') {
visopt.disabled = true;
}
}
Я на правильном пути?
Я понял это, я просто добавляю секундную ссылку кода в функцию OnChange выбора Lab для каждого раздела, чтобы это читалось, как показано ниже;
onChange="if (this.value=='Alpha Bio Labs'){this.form['Samp1'].style.visibility='visible'}
if (this.value=='Alpha Bio Labs'){this.form['Samp1'].disabled=false}"
Этот код повторяется и изменяется для каждой записи, чтобы гарантировать, что она делает то, что требуется.
Спасибо @mickmackusa за вашу помощь на ранних этапах, она вывела меня на правильный путь.
Других решений пока нет …