同じタイプのデータを収集する選択フィールドのリストを作成します。たとえば、同じクラスにタグ付けされたいくつかの選択リストがあります。
<select name="NBSCourse1" class="NBSCourse"></select>
<select name="NBSCourse2" class="NBSCourse"></select>
<select name="NBSCourse3" class="NBSCourse"></select>
// and so on...
選択リストの変更を検出するメソッドを作成し、すべてクラスごとに参照しています。
$("select.NBSCourse").change(function() {
//Other codes here
})
最初の選択リスト (name="NBSCourse1") は機能するようですが、他の選択リストは機能しません。似たようなものが複数ある場合、選択リストにクラスを使用することは想定されていませんか?
私がやろうとしていることの詳細...
実際、Select Fields の最初の行は、私が書いた jQuery 関数 addrow(n) によって初期化されています。このメソッドは、$(document).ready 時に呼び出されます。
addrow(n) 関数を呼び出す「さらに追加」ボタンもあります。関数に渡した「counterNBSCourse」というカウンターを宣言しました。addrow(counterNBSCourse).
function addRow(n){
var tablerow
tablerow = "<tr>";
tablerow += "<td><select name='NBSCourse" + n + "' class='NBSCourse'></select></td>";
//Other select fields
tablerow += "</tr>"
$("table.courses").append(tablerow);
//Method to populate select list
$.ajax({url:"dropdown.asp?type=courseidfill", success:function(result) {
$("select[name=NBSCourse" + n + "]").html(result);
}})
counterNBSCourse++
}
ご覧のとおり、クラス「NBSCourse」を持つ選択フィールドの別の行を追加すると、「counterNBSCourse」の現在の値に応じた名前になります。「NBSCourse1」、「NBSCourse2」など。
現時点では、フィールドにのみ応答します。
$("select.NBSCourse").change(function() {
$("select.NBSCourse").change(function () {
//Getting select field's name
var name
name = $(this).attr('name');
//Getting the number tagged behind the select name file
var num
num = name.replace("NBSCourse","");
//Getting selected value
var nbsCourseid;
nbsCourseid = $(this).val();
//Function to populate another select field,
$.ajax({url:"dropdown.asp?value="+ nbsCourseid + "&type=courseid",success:function(result) {
$("select[name=IndexNo" + num + "]").html(result);
}})
})