#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())
})
Комментарии:
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
}