从td中的动态表获取文本框ID

时间:2018-09-26 07:39:37

标签: jquery html-table id

我有一个如下所示的动态表,我需要验证每个文本框。我只能做第一个文本框。我做不到。

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 :(得分:1)

问题

每页最多只能有一个元素具有任何给定的id值。

到目前为止,您正在使用相同的id创建多个元素。这使您的HTML无效。如果页面中有重复的id值,则Javascript(以及jQuery)将始终仅返回具有给定id的第一个元素。因此,它仅适用于代码中的第一个下拉列表。

解决方案

使用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访问导致事件的元素。