1

同じタイプのデータを収集する選択フィールドのリストを作成します。たとえば、同じクラスにタグ付けされたいくつかの選択リストがあります。

<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);                 
}})     
})
4

3 に答える 3

4

クラスセレクターを使用しても問題ありません。"コードを見逃しています$("select.NBSCourse)

于 2012-06-13T03:48:17.767 に答える
1

締めの引用がありません:

$("select.NBSCourse").change(function() {
 //Other codes here
}); 
于 2012-06-13T03:49:09.310 に答える
0

皆さんありがとう。私は上記の問題をなんとか解決しました(兄の助けを借りて、jQueryの方が明らかに上手です!)

コードは正常に機能しているようですが、関数addrow(); スクリプトを$(document).read(function()の下に置いたため、機能しませんでした。そのため、関数を呼び出すことができたのは1回だけでした。

于 2012-06-15T01:12:40.927 に答える