禁用输入的标签未分配给jQuery中的属性

时间:2019-03-14 09:31:09

标签: jquery .net

我创建了此函数,以添加输入ID的自动增量,然后将ID分配为关联标签的for属性

这是代码:

function addIDRowBuilder() {
    var i = 0;
    $('.form-control').each(function () {
        i++;

        var newID = 'form-control' + i;
        $(this).attr('id', newID);
        $(this).attr('name', newID);

        var testClass = $(this).attr('class').split(' ')[1];

        $(this).parent().find('.label-for-' + testClass).attr('for', newID);
        $(this).parent().find('.label-for-sql-filter-connector' + testClass).attr('for', newID);

    });
} 

但是,不会将for属性分配给禁用输入的标签。 这是在哪里生产的代码。这些行被复制,这就是为其赋予自动ID的原因。

        string filterLabel = "<label class=\"label-for-sql-filter-select sr-only\">Filter</label>";
        string filterField = "<select class=\"form-control sql-filter-select\"></select>";
        string criteriaLabel = "<label class=\"label-for-sql-filter-criteria sr-only\">Criteria</label>";
        string filterCriteria = "<select class=\"form-control sql-filter-criteria\">" + _query_builder_funcs1.GstrFilterList + "</select>";
        string inputLabel = "<label class=\"label-for-input-access sr-only\">Input</label>";
        string inputBox = "<input type=\"text\" class=\"form-control input-access\"></input>";
        string addButton = "<a class=\"btn btn-success\" onclick=\"addQueryBuilderRow(this);\"><i class=\"fas fa-plus\"></i></a>";
        string removeButton = "<a class=\"btn btn-danger hidden\" onclick=\"removeQueryBuilderRow(this);\"><i class=\"fas fa-times\"></i></a>";
        string connectorLabel = "<label class=\"label-for-sql-filter-connector sr-only\">Connector</label>";
        string connectorDropbox = "<select class=\"hidden form-control sql-filter-connector\" disabled>" + _query_builder_funcs1.GStrKPIConnectorList + "</select>";

已为禁用的输入分配了ID和名称,但未为其分配标签。 任何帮助,将不胜感激!

1 个答案:

答案 0 :(得分:0)

我通过整理jQuery代码找出了答案。

function addIDRowBuilder() {
    var i = 0;
    $('.form-control').each(function () {
        i++;

        var newID = $(this).attr('id');


        if (newID == "" || newID == undefined) {
            newID = 'form-control' + i;
        }

        $(this).attr('id', newID);
        $(this).attr('name', newID);

        $(this).prev().attr('for', newID);

    });
}

它将“ for”分配给先前的属性,在这种情况下,该属性是具有form-control类的输入的标签。 我以前做的方式非常严格。