【问题标题】:Javascript - changing name of 2d arrayJavascript - 更改二维数组的名称
【发布时间】:2016-03-02 10:44:09
【问题描述】:

我有这样的输入

<input type="text" name="testingOptions[Food][Burger1]" class="form-control" id="Food">

目前,如果选中了复选框,我将克隆此输入。在我做的克隆中

var inputOrgName = clone.find('input').attr('name');
clone.find('input').attr('name', inputOrgName);

因此,这为克隆的输入提供了与原始输入相同的名称属性。问题是,我需要在克隆名称的末尾添加测试。所以我的目标是这样的

<input type="text" name="testingOptions[Food][Burger1Test]" class="form-control" id="Food">

有什么方法可以实现吗?

谢谢

【问题讨论】:

  • 您的标题有点误导您试图更改输入字段的名称,而不是数组的名称(尽管我理解您为什么这样说)。我的建议是使用 javascript 生成输入字段,而不是使用克隆,然后尝试重命名新创建的字段,因为这会引起一些头痛。由于我没有回答您的问题,因此我不会将其作为答案提交。
  • 此外,如果您克隆输入,则 id 也会重复。如果您从 javascript“手动”创建输入会更好。
  • 您使用的clone 函数是什么?当我尝试使用它时,出现错误:Uncaught ReferenceError: clone is not defined(…)

标签: javascript jquery


【解决方案1】:

您的问题是更改输入字段的名称而不是数组,我认为最适合您的解决方案是string replace

因此修改您的代码,用其中包含单词test 的新字符串替换该字符串。使用正则表达式会更简单。

clone.find('input').attr('name', inputOrgName.replace(/]$/g,'Test]'));

这必须为您提供所需的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-25
    • 2022-01-20
    • 1970-01-01
    • 2021-10-31
    • 2010-09-16
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多