Как получить значение текстового поля из текстового поля в ячейке таблицы HTML, используя JavaScript

0

Я создал HTML-таблицу программно с помощью javascript, аналогично приведенному ниже коду:

function AddRow() {
   var rowcount  = $('#tabBillDet tr').length + 1;
   $('#tabDet tr:last').after("<tr><td><input type='text' id='txtItemCode' style='width:80px' /> </td></tr>");

Я хочу получить значения, введенные в эти текстовые поля.

Я попробовал следующее:

var tab = $('#tabDet tr');
for (var i = 0; i < tab.length; i++) {
    var group = $(tab[i].cells[0].children[0]).val();
    var ItemCode = $(tab[i].cells[1].children[0]).val();
}

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

Но это не работает. Как я могу получить эти ценности?

  • 0
    Ваш цикл for ничего не возвращает. На самом деле var group = .. переопределяет себя на каждой итерации цикла
  • 0
    это просто пример кода.
Показать ещё 2 комментария
Теги:

3 ответа

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

Похоже, вы назначаете один и тот же идентификатор нескольким элементам. Идентификаторы уникальны, поскольку они однозначно идентифицируют элементы в DOM. Вместо этого сделайте ID классом:

$('#tabDet tr:last').after("<tr><td><input type='text' class='txtItemCode' style='width:80px' /> </td></tr>");

И тогда вы можете получить такие значения:

$('#tabDet tr .txtItemCode').each(function(){
   var ItemCode = $(this).val();

   //Do something with ItemCode.
});
  • 0
    но я изменил идентификаторы для каждого добавления. все равно это не работает
  • 0
    Код, который я вам дал, не предлагал менять идентификаторы на уникальные, предлагал использовать классы. Если вы замените строки выше с кодом, размещенным мной или другими, то это должно работать. Если вы ищете пример с разными идентификаторами, то, пожалуйста, скажите, и я добавлю к своему ответу.
0

Попробуй это,

$('#tabBillDet tr').each(function() {
        var ItemCode = $("#txtItemCode", $(this)).val();
     });
  • 0
    Я не могу использовать идентификатор элемента управления. Потому что я меняю идентификатор текстовых полей в каждой строке, чтобы избежать конфликта идентификаторов. Это потому, что я добавляю ajax-календарь в это текстовое поле html.
0

ваш var перезаписывается на каждой итерации цикла for, объявляет команду var group и itemcode раньше в качестве массива и просто помещает значения в ваши массивы

var tab = $('#tabDet tr');
var group = [], ItemCode= [];
for (var i = 0; i < tab.length; i++) {
  group.push($(tab[i].cells[0].children[0]).val());
  ItemCode.push($(tab[i].cells[1].children[0]).val());
}

но что вы хотите делать с этими значениями? почему вы не работаете с id?

  • 0
    Я не могу использовать идентификатор элемента управления. Потому что я меняю идентификатор текстовых полей в каждой строке, чтобы избежать конфликта идентификаторов. Это потому, что я добавляю ajax-календарь в это текстовое поле HTML
  • 0
    Спасибо за ваш код. Я попробовал это, но я получил эту ошибку "Невозможно получить значение свойства 'val': объект является нулевым или неопределенным"
Показать ещё 2 комментария

Ещё вопросы

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