【发布时间】:2021-09-22 16:03:21
【问题描述】:
我正在尝试创建一个带有标签和输入的表单,我有一个关联数组,其标签在“键”中,值在数组对象值中。
我想创建一个具有 2 列 (col-6) 和 (col-6) 的引导水平表单,但很遗憾我无法做到。
这是一个示例数组:
用户数组:{ “id”:“15”, "first_name": "abc", “姓氏”:“xyz”, "地址": "地址", “邮政编码”:“111” }
我想通过 jQuery append() 方法创建如下引导布局。
需要输出
<div class="col-12">
<form>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label class="col-md-4"> ID </label>
<input type="text" value="" class="col-md-8">
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label class="col-md-4"> First Name </label>
<input type="text" value="" class="col-md-8">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label class="col-md-4"> Last Name </label>
<input type="text" value="" class="col-md-8">
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label class="col-md-4"> Address </label>
<input type="text" value="" class="col-md-8">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label class="col-md-4"> Zip Code</label>
<input type="text" value="" class="col-md-8">
</div>
</div>
<!-- NOTE THERE IS NO SECOND COLUMNS HERE SINCE ONLY 5 OBJECTS IN ARRAY -->
</div>
</form>
</div>
为了得到这个布局,我只使用 jQuery,如下所示,使用 forloop。
脚本
$(document).ready(function() {
const userArray = { "id": "15", "first_name": "abc", "last_name": "xyz", "address": "Address", "zipcode": "111" };
var arrayLength = Object.keys(userArray);
var counter = 0; //initializing this counter just to know which object the loop is.
var columnBlock = ''; //will append this to an element in HTML.
columnBlock += '<form class="horizontal-form">
for (var i = 0; i < arrayLength; i++) {
if(counter == 0 || counter %2 == 0) {
columnBlock += '<div class="row"';
columnBlock += '<div class="col-md-6">;
columnBlock += '<div class="form-group row">;
columnBlock += '<label class="col-md-4">'+Object.keys(userArray);+'</label>';
columnBlock += '<input class="col-md-8 form-control" value="'+Object.values(userArray)+'">';
columnBlock += '</div>'; //form-group close
columnBlock += '</div>'; //col-6 close
columnBlock += '</div>'; //row close
}
// HERE NO ROWS ONLY COLUMN COL-6, SINCE IT IS THE SECOND COL. IT's NOT WORKING!
columnBlock += '<div class="col-md-6">;
columnBlock += '<div class="form-group row">;
columnBlock += '<label class="col-md-4">'+Object.keys(userArray);+'</label>';
columnBlock += '<input class="col-md-8 form-control" value="'+Object.values(userArray)+'">';
columnBlock += '</div>'; //form-group close
columnBlock += '</div>'; //col-6 close
counter = counter + 1;
} // For Close
$("#info-blok").append(columnBlock); // here appending to HTML div block
}); // JQUERY CLOSE
HTML
<div class="" id="info-blok"> </div>
它不起作用,谁能指导我如何获得有两列的输出,还要注意最后一行只有一列。
我得到的输出只有一列有行,下一列只有“col-6”。
谢谢
【问题讨论】:
-
columnBlock += '<form class="horizontal-form">你忘记关闭字符串了。
标签: javascript jquery arrays bootstrap-4