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() 下。这就是为什么该函数只能调用一次的原因。

于 2012-06-15T01:12:40.927 回答