我创建了此函数,以添加输入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和名称,但未为其分配标签。 任何帮助,将不胜感激!
答案 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类的输入的标签。 我以前做的方式非常严格。