2012-06-13 4 views
1

У меня будет список полей выбора, которые собирают данные того же типа. Например, у меня будет несколько списков выбора, помеченных те же классы.jQuery selectors: Могу ли я использовать класс для выбора списков?

<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 

}) 

Похоже, что первый список выбора (имя = «NBSCourse1») работает, но другие выберите списки не работают. Я не должен использовать классы для избранных списков, если есть несколько похожих?


Подробности о том, что я пытаюсь сделать ...

На самом деле, первая строка Select Fields была инициализирована с помощью функции JQuery я писал: addrow (п). Метод вызывается во время, на $ (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"). Изменить (функция() {

$("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);     
}})  
}) 
+0

Не могли бы вы добавить остальную часть кода PLZ? Кстати, в вашем селекторе –

+0

'select.NBSCourse' должен определенно соответствовать всем элементам' select' в вашем примере кода. Помимо отсутствующих закрывающих кавычек в вашем JavaScript, вы можете показать больше кода для воспроизведения проблемы? – David

+0

http: // jsfiddle .net/lucuma/TvJ7j/Хорошо работает с правильным цитированием. – lucuma

ответ

4

Это нормально использовать селектор класса, вы пропустите " вашего кода $("select.NBSCourse).

+0

Спасибо. Я исправил вышеизложенное отражают это. – kosherjellyfish

1

у вас есть недостающая закрывающая кавычка:.

$("select.NBSCourse").change(function() { 
//Other codes here 
}); 
0

Спасибо всем, мне удалось решить данную проблему (с помощью моего брата, который, очевидно, более хорошо стих в jQue ry!)

Похоже, что мои коды работают нормально, но моя функция addrow(); не работает, потому что я поместил скрипт под $ (document) .read (function(). Поэтому функцию можно было вызывать только один раз.

Смежные вопросы