動的に作成されたドロップダウン メニュー オプションを無効にしようとしています (他のメニュー オプションとのユーザーの対話に応じて)。「null」はオブジェクトではないというエラーが発生します。
このコード行:
if (document.getElementById(DropDownNames[j]+x).value = openerVals) {
構文エラーがあると思いますが、まだ Javascript に慣れていないため、完全にはわかりません。
コード全体は次のとおりです。
var OpeningEmployees = document.getElementById('opener');
var QuantityDDOptions = ('#opener option').length;
var openerVals = eodForm.elements["opener"].value;
var DropDownNames = new Array();
DropDownNames[0] = "ui-multiselect-opener-option-";
DropDownNames[1] = "ui-multiselect-mid-option-";
DropDownNames[2] = "ui-multiselect-closer-option-";
DropDownNames[3] = "ui-multiselect-SR-option-";
DropDownNames[4] = "ui-multiselect-CR-option-";
DropDownNames[5] = "ui-multiselect-A-option-";
DropDownNames[6] = "ui-multiselect-BD-option-";
DropDownNames[7] = "ui-multiselect-Fridge-option-";
DropDownNames[8] = "ui-multiselect-AO-option-";
DropDownNames[9] = "ui-multiselect-EPV-option-";
OpeningEmployees.onchange = function () {
for (var j = 0; j <= DropDownNames.length; j++){
for (var x = 0; x <= QuantityDDOptions; x++) {
if (document.getElementById(DropDownNames[j]+x).value = openerVals) {
document.getElementById("'"+DropDownNames[j]+x+"'").setAttribute("disabled","disabled");
ご協力ありがとうございました。私はあなたの投稿から変更を加えましたが、ブラウザー コンソールでまだエラーが発生しています。ドロップダウン名の末尾の数字は動的であることに注意してください。ユーザーがデータベースに追加されると、ドロップダウン メニューに追加されるので、QuantityDDOptions をオプションの数と同じに設定します。オプションは 0 から始まります。
更新されたコードは次のとおりです。
var OpeningEmployees = document.getElementById('opener');
var QuantityDDOptions = ('#opener option').length;
var openerVals = eodForm.elements["opener"].value;
var DropDownNames = new Array();
DropDownNames[0] = "ui-multiselect-opener-option-";
DropDownNames[1] = "ui-multiselect-mid-option-";
DropDownNames[2] = "ui-multiselect-closer-option-";
DropDownNames[3] = "ui-multiselect-SR-option-";
DropDownNames[4] = "ui-multiselect-CR-option-";
DropDownNames[5] = "ui-multiselect-A-option-";
DropDownNames[6] = "ui-multiselect-BD-option-";
DropDownNames[7] = "ui-multiselect-Fridge-option-";
DropDownNames[8] = "ui-multiselect-AO-option-";
DropDownNames[9] = "ui-multiselect-EPV-option-";
OpeningEmployees.onchange = function () {
for (var j = 0; j < DropDownNames.length; j++){
for (var x = 0; x < QuantityDDOptions; x++) {
if (document.getElementById(DropDownNames[j]+x).value == openerVals) {
document.getElementById(DropDownNames[j]+x).setAttribute("disabled","disabled");