Haben Sie den Code hier:Wie kann ich ein Objekt basierend auf den Optionen erhalten, die ausgewählt wurden?
var i4options = {
TTXT1: [
{val: "01", id: "(01) XT1 Option 1"},
{val: "02", id: "(02) XT1 Option 2"}
],
TTXT2: [
{val: "01", id: "(01) XT2 Option 1"},
{val: "02", id: "(02) XT2 Option 2"}
]
};
function i4check() {
const i1checkval = i1.options[i1.selectedIndex].value;
const i2checkval = i2.options[i2.selectedIndex].value;
const i3checkval = i3.options[i3.selectedIndex].value;
const i4checkoutput1 = "i4options" + i1checkval + i2checkval + i3checkval;
let userSettings = {
'product': i1checkval,
'type': i2checkval,
'source': i3checkval,
};
if (userSettings.product !== '---' && userSettings.type !== '---' && userSettings.source !== '---') {
let newItem = document.createElement('option');
var nofentries = i4options.(i1checkval + i2checkval + i3checkval).length;
var x = 0;
while (x < nofentries){
i4.appendChild(new Option(i4options.(i1checkval + i2checkval + i3checkval)[x].id, i4options.(i1checkval + i2checkval + i3checkval)[x].val));
x += 1;
}
\t \t
}
}
function generatordropdown(){
var o1 = i1.options[i1.selectedIndex].value;
var o2 = i2.options[i2.selectedIndex].value;
var o3 = i3.options[i3.selectedIndex].value;
var o4 = i4.options[i4.selectedIndex].value;
\t
var output = o1 + o2 + o3 + o4;
\t
document.getElementById("output").value = output;
}
<form action="database/additem.php" method="post">
<h1>product</h1>
<select id="i1" onchange="generatordropdown(); i4check();" name="product">
<option selected="true" disabled="disabled">---</option>
<option value="T">(T) Telephone</option>
</select><br>
<h1>type</h1>
<select id="i2" onchange="generatordropdown(); i4check();" name="type">
<option selected="true" disabled="disabled">---</option>
<option value="T">(T) Model T</option>
</select><br>
<h1>source</h1>
<select id="i3" onchange="generatordropdown(); i4check();" name="source">
<option selected="true" disabled="disabled">---</option>
<option value="XT1">(XT1) XT1</option>
<option value="XT2">(XT2) XT2</option>
</select><br>
<h1>i4</h1>
<select id="i4" onchange="generatordropdown()" name="category">
<option selected="true" disabled="disabled">---</option>
</select><br>
<h1>ID</h1>
<input onClick="this.setSelectionRange(0, this.value.length)" type="text" id="output" name="id" style="width: 50%;" readonly><br>
</form>
Oder wenn Sie bevorzugen jsfiddle: https://jsfiddle.net/2kd6LdLc/
Zeile 27 und 30 heißt es:
(i1checkval + i2checkval + i3checkval)
Was ich bin versuchen, hier zu tun, haben den Code überprüfen TTXT1 wenn Option i3 XT1 ist, und überprüfen Sie TTXT2 wenn Option i3 ist XT2. Ich könnte dies mit if-Anweisungen tun, aber ich möchte leicht neue Objekte hinzufügen, wenn ich muss, also möchte ich nicht jedes Mal eine if-Anweisung hinzufügen müssen. Irgendwelche Vorschläge, wie man das macht? Mir geht es gut mit Eval(), wenn es der einzige Weg ist, aber ich weiß nicht, wie ich es verwenden würde.
mit Registerkarten nicht indent Code tun. Verwenden Sie Leerzeichen – smac89
Ich denke, dass Sie nach etwas suchen mehr oder weniger gleichwertig zu ['lodash.get'] (https://lodash.com/docs/4.17.4#get) – smac89
@ smac89 editted – finlx