получить атрибуты выпадающего списка

#javascript #jquery #jquery-selectors #jquery-validate

#javascript #jquery #jquery-селекторы #jquery-проверка

Вопрос:

В приведенном ниже у меня есть div с именами сотрудников, и я должен присвоить им оценку, мой вопрос в том, что я получил empid для всех выбранных значений в getgrade_values функции.Используя jquery, как получить идентификаторы выпадающего списка с его значением, где значения выбираются при нажатии функции оценки

   function getgrade_values(empid)
  {
           var ele='<select id="'  empid  '" name="emp" style="width:40px;margin:0px 0pt;" >';
           ele  =  '<option value=""></option>';
           ele  =  '<option value="A">A</option>';
           ele  =  '<option value="B">B</option>';
           ele  =  '<option value="C">C</option>';
           ele  =  '<option value="D">D</option>';
           ele  =  '<option value="E">E</option>';
           ele  =  '<option value="F">F</option>';
           ele  = '</select>';
        return ele;
  }


  function sendparams(data)
  {
        if(data.status == 1)
        {

           var ele='<tr id="std"><td><b>Evaluate:</b></label>amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;</td></tr>';
           for(var l=0;l<data.emparr.length;l  )
           {
              ele  =  '<tr><td><div id="'  data.emparr[l].id  '">'   data.emparr[l].name   "</td><td>"   getgrade_values(data.emparr[l].id)   '</div></td></tr>';
           ele = '<input type="button" value="Evaluate" onclick="evaluate();"';
           }

   }
  

Ответ №1:

 var select = $('select[name="emp"]')
var empId = select.attr('id')
alert('empId = ' empId)
select.children('option:selected').each(function() {
    alert('grade selected = '   $(this).val())
})
  

ДЕМО:http://jsfiddle.net/hdTEP

Комментарии:

1. будут ли оценки и EmpID массивом значений.. Я хочу получить те идентификаторы, значения выпадающего списка которых выбраны, а не «»

2. если вы можете заглянуть в мой код, там есть много полей выбора с именем emp, как получить все эти значения..

3. просто зациклите их с $('select[name="emp"]').each(function(){/*do something*/})

Ответ №2:

В настоящее время у вас будет 2 элемента с id="<employeeId>" . Поскольку идентификаторы должны быть уникальными для всей страницы, вам следует рассмотреть возможность добавления типа элемента, который вы представляете, например id="<employeeId>_gradeInput" , в раскрывающемся списке «оценка». Далее, для каждого пользователя, похоже, у вас есть кнопка для отправки оценки. Я бы вызвал evaluate с идентификатором сотрудника, связанным с этой кнопкой.

 function getgrade_values(empid){
    var ele='<select id="'  empid  '_gradeInput" name="emp" style="width:40px;margin:0px 0pt;" >';
    ..//Remaining code
}

function sendparams(data) {
if (data.status == 1) {
    var ele = 
        '<tr id="std">'   
            '<td>'   
                '<b>Evaluate:</b>'   
            '</td>'   
        '</tr>';
    for (var l = 0; l < data.emparr.length; l  ) {
        var employeeId = data.emparr[l].id;
        ele  = 
            '<tr>'  
                '<td>'  
                    '<div id="'   employeeId    '_divContainer">'  
                        data.emparr[l].name  
                    '</div>' 
                '</td>'  
                '<td>'   
                    getgrade_values(employeeId)
                '</td>'  
            '</tr>';
        ele  = '<input type="button" value="Evaluate" 
                    onclick="evaluate('   employeeId   ');"';
    }
}

function evaluate(employeeId){
    var gradeValue = $('#'   employeeId   '_gradeInput').val();
    ..//Your other evaluate code here
}