Получить идентификатор текстового поля из динамической таблицы в тд - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть динамическая таблица, как показано ниже, мне нужно проверить каждое текстовое поле.Я могу сделать только первое текстовое поле.Я не могу сделать оставшееся.

Table

Мой код:

foreach{ // for reference

          <%: Html.TextBox("Qty", "", new { Id = "Qty_Id"})%>

}



    $(function () {
        debugger;
        $('#Qty_Id').blur(function () {
            var QtyVal = $('#Qty_Id').val();
            var $regexmatch = /^[0-9]*$/;

            if (!$.isNumeric(QtyVal) || !QtyVal.match($regexmatch)) {
                IsValid = false;
                alert("Quantity must be number..!");
                $('#Qty_Id').val('');
            }
        });
    });

1 Ответ

0 голосов
/ 26 сентября 2018

Проблема

У вас может быть только один элемент с любым значением id на странице.

На данный момент вы создаете несколько элементов с одинаковым * 1006.*.Это делает ваш HTML недействительным.Если у вас есть дубликаты id значений на странице, Javascript (а также jQuery) всегда будет возвращать только первый элемент с данным идентификатором .Вот почему он работает только для первого раскрывающегося списка в вашем коде.

A Решение

Вместо id используйте class:

foreach{ // for reference
      <%: Html.TextBox("Qty", "", new { Class = "Qty_Class"})%>
}



$(function () {
    debugger;
    $('.Qty_Id').blur(function () {
        var QtyVal = $(this).val();
        var $regexmatch = /^[0-9]*$/;

        if (!$.isNumeric(QtyVal) || !QtyVal.match($regexmatch)) {
            IsValid = false;
            alert("Quantity must be number..!");
            $(this).val('');
        }
    });
});

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...