Как получить идентификатор из сгенерированного списка в jquery

0
$ctr = 0;
foreach($authspons as $authspons_list){
   $ctr++;
   echo "<input type='checkbox' id='id_list'".$ctr."'"." name='authspons[]'"." class='list_check' value='".$authspons_list->authspons_position." ".$authspons_list->authspons_lname.",".$authspons_list->authspons_fname." ".$authspons_list->authspons_mname." ".$authspons_list->authspons_cmpny.'; '."'".">" .$authspons_list->authspons_position." ".$authspons_list->authspons_lname.",".$authspons_list->authspons_fname." ".$authspons_list->authspons_mname." ".$authspons_list->authspons_cmpny."</input> <br />";
  echo "<input type='text' class='text_list' id='tbox".$ctr."'"."name='authsponsid[]' value='".$authspons_list->authspons_id."; "."'"." >";
    }

У меня есть сгенерированный список, поступающий из базы данных, флажки содержат личные данные, а текстовые поля содержат "идентификатор" каждого элемента в ячейках.

Это мой код jquery:

$('#list').click(function(){
var final = '';
var final2='';
$('.list_check:checked').each(function(){        
    var values = $(this).val();
    final += values;
var val_id = $('.text_list').val();
final2 +=val_id;
});
$("#coauth").val(final);
$("#coauthid").val(final2);
$("#coauthspons").modal("hide");
});

Получение значения из флажков в порядке. Моя проблема: вывод из текстового поля всегда является последним значением количества отмеченных флажков.

Как это:

1st checkbox = 1st textbox(value="1");
2nd checkbox = 2nd textbox(value="2");

когда я проверяю два варианта, текстовое поле приводит только к:

1st checkbox = 1st textbox(value="2");
2nd checkbox = 2nd textbox(value="2");

Как получить результат каждого из ожидаемого флажка и его значения в текстовом поле?

  • 0
    Вы можете добавить генерируемый HTML? Где в вашем коде существует #list?
  • 0
    #list - это кнопка, которая запускает функцию. Он существует в модальном нижнем колонтитуле бутстрап модальной формы
Теги:
checkbox

2 ответа

0
Лучший ответ

здесь var val_id = $('.text_list').val();

вы даете одинаковое значение для всех элементов независимо от их индекса

попробуй вот так

var val_id = $(this).next().val(); //this gives value of next i.e .text_list element
  • 0
    Я пробовал var val_id = $ ('. Text_list'). Next (). Val (); но он получает значение флажка, а не значение текстового поля
  • 0
    $ ( 'Text_list') следующий () Вал ()..; дает значение элемента, который находится рядом с элементом, имеющим класс .text_list, т.е. флажок. но в моем коде это дает значение следующего элемента флажка. т.е. элемент '.text_list'. Попробуйте мой код, и он будет работать
Показать ещё 2 комментария
0
$('#list').click(function(){
  var final = '';
var final2='';
  $('.list_check:checked').each(function(){        
    var raw_value = $(this).val();
    var id_value = raw_value.split("||");

    var values = id_value[1];
    final += values;
    var val_id = id_value[0];
    final2 +=val_id;
});
$("#coauth").val(final);
$("#coauthid").val(final2);
//alert(final2);
$("#coauthspons").modal("hide");
});

Спасибо #Bhadra за ваш ответ. это дает мне представление, но я нашел лучшее решение своей проблемы. Я помещаю все значения в флажок, тогда я использую функцию split, чтобы отделить "ID" от исходных значений флажка (fname, mname, lname).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню