gpt4 book ai didi

JavaScript Asp.net 重复控件

转载 作者:行者123 更新时间:2023-12-01 01:47:44 36 4
gpt4 key购买 nike

我正在尝试使用 Asp.net 3.5/IIS 执行以下操作

具有顶级可重复表单的网络表单。所以基本上是一个订单->产品->产品零件的场景。订单只有一份。产品具有可重复性。每个产品都有可重复的产品零件。产品和产品部分有一大堆字段,因此我无法使用网格。

因此,我为产品添加/删除按钮,并在每个产品中为每个产品部分添加/删除按钮。

这就是我的要求。经过一些研究后,我已经能够使用 jquery/js 实现添加/删除。我如何在服务器上捕获这些数据?由于 javascript 添加和删除这些控件,它们不是服务器端,我不知道如何正确分配名称属性。我正在尝试遵循 javascript,但它不起作用:

function onAddProperty(btnObject){
var previous = btnObject.prev('div');
var propertyCount = jquery.data(document.body, 'propertyCount');

var newDiv = previous.clone(true).find("*[name]").andSelf().each(function () { $(this).attr("name").replace(($(this).attr("name").match(/\[[0-9]+\]/), cntr)); }); ;

propertyCount++;
jquery.data(document.body, 'propertyCount', propertyCount);

//keep only one unit and remove rest
var children = newDiv.find('#pnlUnits > #pnlUnitRepeater');
var unitCount = children.length;
var first = children.first();
for (i = 1; i < unitCount; i++) {
children[i].remove();
}

newDiv.id = "pnlPropertySlider_" + propertyCount;

newDiv.insertBefore(btnObject);
}

我需要将 name 属性分配为数组,以便我可以在 Request.Form 中读取它

修复不更新 id 不起作用的问题:

  var newDiv = previous.clone(true).find("input,select").each(function () {
$(this).attr({
'name': function () {
var name = $(this).attr('name');
if (!name) return '';
return name.replace(/property\[[0-9]+\]/, 'property' + propertyCount);
}
});
}).end().insertBefore(btnObject);

最佳答案

问题类似于以下行:

$(this).attr("name").replace(($(this).attr("name").match(/\[[0-9]+\]/), cntr));

这个语句没有任何作用。 JavaScript 中的字符串是不可变的,.replace 仅返回替换内容的字符串。

然后,您必须实际将 attr("name") 设置为具有替换值的新字符串: http://api.jquery.com/attr/

如果没有看到您的 HTML,我无法提供更多帮助。

关于JavaScript Asp.net 重复控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281409/

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