gpt4 book ai didi

java - 使用javascript动态添加重复(唯一ID)表单Div元素

转载 作者:行者123 更新时间:2023-11-30 11:37:51 25 4
gpt4 key购买 nike

我有一个表单,其中包含如下字段:

<div class="row">
<div class="field">
<input class="" type="text" name="college" id="college"/>
</div>

<div class="field">
<input class="" type="text" name="city" id="city"/>
</div>

<div class="field">
<input class="" type="text" name="zip" id="zip"/>
</div>
</div>
<input type="button" class="buttonWidth" id="btnAddressAdd" value="Add Worksite Addressess"/>

我有一个添加额外地址按钮,可以将 div“行”的另一个副本添加到页面。我需要将页面中的所有数据作为请求发送到 Controller 。我如何编写一个脚本来添加额外的 div 副本 onclick 按钮并将唯一的 id 附加到每个新字段?

最佳答案

请参阅 Dojo 中的工作示例:http://jsfiddle.net/phusick/PeQCN/

普通 JavaScript 中的相同代码:http://jsfiddle.net/phusick/Rceua/

Dojo 版本使用 dojo/_base/lang::clone 正如@Peter Rader 提到的:

// var lang    = require("dojo/_base/lang");
// var array = require("dojo/_base/array");
// var query = require("dojo/query");
// var domAttr = require("dojo/dom-attr");

var counter = 0;

function duplicate(/*Node*/sourceNode, /*Array*/attributesToBump) {
counter++;
var out = lang.clone(sourceNode);
if (domAttr.has(out, "id")) { out.id = bump(out.id); }

query("*", out).forEach(function(node) {
array.forEach(attributesToBump, function(attribute) {
if (domAttr.has(node, attribute)) {
domAttr.set(node, attribute, bump(domAttr.get(node, attribute)));
}
})
});

function bump(/*String*/str) {
return str + "_" + counter;
}

return out;
}

如何使用前面提到的duplicate 函数:

// var dom          = require("dojo/dom");
// var domConstruct = require("dojo/dom-construct");

var sourceNode = dom.byId("fieldset");
var node = duplicate(sourceNode, ["id", "name", "placeholder"]);
domConstruct.place(node, sourceNode, "after");

关于java - 使用javascript动态添加重复(唯一ID)表单Div元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com