私はJQueryとJavascriptの初心者です。私は(DataTablesプラグインを使用して)動的に作成され、6列と0以上の行を持つテーブルを持っています。最初の4つの列には、2つのドロップダウンメニューと2つの入力フィールドがあります。私は、対応するドロップダウンメニューで選択したものに基づいて、次の入力フィールドの値を設定しようとしています。クラスまたはIDなしで次の入力フィールドを設定する方法
次の例では、最初のドロップダウンにSite1とSite2の2つの値があります。ユーザーがSite2を選択すると、onchangeイベントが発生し、関数getSiteObjects()は次の入力フィールドに値を設定します。私はどのドロップダウンメニューを選択しているのかわかりませんが、次のフォームフィールドが設定したい入力フィールドになることはわかります。次の入力フィールドを設定するにはどうしたらいいですか?
HTMLのスニペット:
<tr class="customizationRow odd" role="row">
<td class="sourceSiteCell">
<div class="form-group">
<select class="form-control user-input" onchange="getSiteObjects(this)">
<option class="option"/>
<option class="option">Site1</option>
<option class="option">Site2</option>
</select>
</div>
</td>
<td class="sourceObjectCell">
<input class="form-control user-input" type="text" value="">
</td>
<td class="targetSiteCell">
<div class="form-group">
<select class="form-control user-input" onchange="getSiteObjects(this)">
<option class="option"/>
<option class="option">Site1</option>
<option class="option">Site2</option>
</select>
</div>
</td>
<td class="targetObjectCell">
<input class="form-control user-input" type="text" value="">
</td>
<!-- More of the same code for the other columns -->
</tr>
JavaScriptの機能:
function getSiteObjects(select) {
var selectedSite = select.value; // Gets the value selected
<!-- Make an ajax call to get the value from a REST service -->
$(this).next('input').val("Hello1"); // Doesn't work
$(this).find('input').val("Hello2"); // Doesn't work
// select.next('input').val("Hello3"); // Doesn't work
}
私は私の問題のjsFiddleのデモを作成しました:jsFiddle Demo
それは魅力的に機能し、私は今何が間違っているのか理解しています。ありがとうございました! – k8rv