Ich habe ein Webformular, in dem ich versuche, den Wert einiger schreibgeschützter Texteingaben basierend auf Dropdown-Auswahl zu manipulieren.Variable als Eingabe setzen, deren Elternindex mit einer anderen Variablen übereinstimmt
HTML (abgekürzt) sieht grundsätzlich wie folgt:
<fieldset class="container">
<fieldset class="foo-points-fs">
<div>
<selector id="foo-bar1-points">
<option>1</option>
<option>2</option>
</selector>
</div>
<div>
<selector id="foo-bar2-points">
<option>1</option>
<option>2</option>
</selector>
</div>
</fieldset>
<fieldset class="foo-weight-fs">
<div>
<input readonly="readonly" value="1" id="foo-bar1-weight"/>
</div>
<div>
<input readonly="readonly" value="2" id="foo-bar2-weight"/>
</div>
</fieldset>
<fieldset class="foo-score-fs">
<div>
<input readonly="readonly" value="0" id="foo-bar1-score"/>
</div>
<div>
<input readonly="readonly" value="0" id="foo-bar2-score"/>
</div>
</fieldset>
</fieldset>
auf der Seite, diese wie Tabellenzeilen sieht im Grunde, wo Sie eine Spalte von Dropdown-Listen haben die Benutzer mit Spalten für das Gewicht wählen werden und sammeln neben es. So ist jeder Satz von selector
, input
und input
eine Zeile.
Was ich tun möchte, ist den Wert der Eingaben innerhalb der .score
fieldset entsprechend dem Wert des Selektors und Gewicht Eingabe in der gleichen Zeile ändern - dh diejenigen, deren Eltern divs 'Indizes gleich ihren entsprechenden Selektoren sind Eltern-Div-Index. Der Teil, den ich nicht herausfinden kann, ist, wie man in jQuery sagt, dass eine Variable auf "die Eingabe gesetzt werden soll, deren übergeordneter div-Index dem Index eines anderen Selektors/Inputs entspricht".
Hier ist, was ich bisher habe:
jQuery('fieldset.container select[id$="-points"]').change(function() {
var sel = jQuery(this),
fs = sel.parents('fieldset[id$="-points-fs"]'),
dropPar = sel.parent('div'),
dropNdx = dropPar.index(),
weightInput = fs.find('input[id$="-weight]'),
scoreInput = fs.find('input[id$="-score"]'),
weight = weightInput.parent('div').index(dropNdx), // problem is here, I assume
score = scoreInput.parent('div').index(dropNdx); // problem is here, I assume
score.val(weight.val() * sel.val());
});
Hilfe bitte?
Hey können Sie eine Geige erstellen? - http://jsfiddle.net –
Pen [ist hier] (http://codepen.io/cjl750/pen/kXqyER), aber Markup ist nicht ganz so abgekürzt. – cjl750