循环遍历动态添加元素的数组

2024-04-14

jQuery 新手,请求帮助解决我无法解决的问题。

克隆的表行包含<input type="text" name="dt[]" id="dt1">场地。下面是被克隆的模板行。

<table id="MyTable" name="MyTable">
    <tr name="tr3" id="tr3">
        <td>
            <input type="text" name="dt[]" id="dt1">
        </td>
        <td>
            <input type="file" name="fff[]" id="ff1">
        </td>
    </tr>
</table>

用户可能会创建其中几个字段,我正在尝试找出如何循环遍历所有字段并在提交表单之前验证其中是否有文本。

请注意,我必须使用 jQuery .on() 方法来访问表单元素。需要如何对循环进行编码?最初,我一直在尝试这个(编辑):

$(document).on('click','#sub1',function() {
    var d1 = $("[name^=dt]").val();
    alert(d1);
    if (d1 !=""){
        $("#TheForm").submit();
    } else {
        alert("Empty fields!");
    }
});

和这个:

var d1 = $("#dt1").val();
alert(d1);

和这个:

var d1 = $("#^dt").val();
alert(d1);

但一直无法获取数据。


编辑:根据要求,此代码克隆行:

$(document).on('click', '#add_row', function() {
    $("table#MyTable tr:nth-child(4)")
        .clone()
        .show()
        .find("input, span").each(function() {
            $(this)
                .val('')
                .attr('id', function(_, id) {
                    var newcnt = id + count;
                    return id + count;
                    });
        })
        .end()
        .appendTo("table")
        ;

    count++;
    if (count == 2) {
        $('#add_row').prop('disabled', 'disabled');
    }
}); //end add_row Function

您的 HTML 格式不正确。你应该做:

<input type="text" name="dt[]">

然后循环如下:

$('input[name^=dt]').each(function() {
  // code
  alert( this.value ); // $(this).val()
});

你想要做的事情是不可能的id属性,但可以使用name属性。id应该始终是唯一的.


除此之外

您可以使用通用的class所有人的名字inputs 然后循环 then 像:

$('input.common_cls').each(function() {
  // code
});

Note

"#^dt"根本不是一个有效的选择器。正确的语法是

'input[name^=dt]'

OR

input[id^=dt].


您可以像下面这样实现验证

// this function will return true if no empty
// input exists, otherwise it will return false

function noEmptyExists() {
    return $('input[name^=dt]').filter(function() {
        return !$.trim( this.value );
    }).length === 0;
}

$(document).on('click','#sub1',function() {
   if( noEmptyExists() ) {
      alert('Success');
   } else {
      alert('Failed');
   }
});

工作样本 http://jsfiddle.net/zZD9a/2/


根据进度更新

this.val()是错的。

将此行更改为:

$(this).val()

经过聊天讨论并解决克隆问题后

完整代码

$(document).ready(function() {
    var count = 1;
    alert('doc ready');
    var row = $("table#MyTable tr:eq(1)");
    $(document).on('click', '#sub1', function() {
        if (noEmptyExists()) {
            alert('Success');
        } else {
            alert('Failed');
        }
    });

    $(document).on('click', '#add_row', function() {
        row.clone(true).find("input").each(function() {
            $(this).val('').attr('id', function(_, id) {
                var newcnt = id + count;
                return id + count;
            });
        }).end().appendTo("table");
    });

});

function noEmptyExists() {
    return $('input[name^=dt]').filter(function() {
        return !$.trim(this.value);
    }).length === 0;
}

工作样本 http://jsfiddle.net/BGy4M/11/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环遍历动态添加元素的数组 的相关文章

随机推荐

  • 如何让 PreOrder、InOrder、PostOrder 正常工作?

    如何让 PreOrder InOrder PostOrder 正常工作 这是我当前的代码和实现 请参阅 InOrder PreOrder PostOrder 我有来自 Geek4Geek 的参考 https www geeksforgeek
  • 环形缓冲区和 DMA

    我试图了解从数据包到达网卡到目标应用程序收到数据包之间发生的所有事情 假设 缓冲区足够大 可以容纳整个数据包 我知道情况并非总是如此 但我不想介绍太多技术细节 一种选择是 1 Packet reaches the NIC 2 Interru
  • 远程 PowerShell,查找最近 5 个用户登录

    我尝试在安全事件发生后以管理员身份查看企业计算机上的最后 5 个登录事件 我进行了初步调查 并试图找到一种方法来快速列出潜在的 嫌疑人 名单 我已经能够生成列出日志文件的输出 但在您通常会看到的帐户名称下 域名 用户名我只得到输出 SYST
  • 如何将 sql 查询的值存储到变量中?

    resourcesbuilt mysql query SELECT resourcesbuilt FROM user WHERE username username LIMIT 1 if resourcesbuilt lt 0 mysql
  • C++ 构造函数和析构函数顺序

    我正在尝试有关基类和成员构造和销毁的代码 并且我对构造函数和析构函数的某些顺序感到困惑 这段代码的输出是 Base1 constructor Member1 constructor Member2 constructor Derived1
  • Numpy einsum 给出错误:折叠索引 'q' 的操作数 0 中的维度不匹配 (4 != 2)

    我正在尝试使用 numpy 的 einsum 计算以下内容 import numpy as np tmp ee np ones 2 4 4 tmp ij np ones 2 2 4 2 4 2 print tmp ee shape prin
  • 打开新窗口而不关注它[重复]

    这个问题在这里已经有答案了 我有这样的情况 我尝试打开一个窗口window open功能新窗口在主窗口前面打开 我如何在主窗口后台打开它 而不关注新窗口 可以做这样的事吗 你所寻求的叫做 弹出 窗口 http www javascriptk
  • java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0

    我无法解决这个异常 我已经阅读了 hadoop 文档以及我能找到的所有相关的 stackoverflow 问题 我的 fileSystem mkdirs 抛出 Exception in thread main java lang Unsat
  • 如何创建仅本地主机的Java套接字?

    我有一个 Java 服务器 它使用 ServerSocket 使用 Thrift 打开一个套接字 该服务器在 Obj c 的本地计算机上有一个与 Java 服务器通信的客户端 一切都发生在本地主机上 现在java服务器在网络上也是可见的 我
  • Python:使用另一个命令的输入

    我想知道如何管理 python 脚本中另一个命令的输入 Example cat myfile txt my python script py 我的脚本如何管理来自 cat 命令的输入流 如何从此管道命令获取输入 多谢 实现此目的的一种简单且
  • 在 PHP 中使用 CURL 发布以“@”开头的文本数据

    我使用 CURL 在 PHP 中发布数据 如下所示 curl setopt ch CURLOPT POSTFIELDS args 其中 args 参数数组 问题在于其中一个参数的值以 开头 根据 CURL 文档 这意味着我将发送一个文件 但
  • 我可以在 iOS 上使用 MongoDB 来替代 CoreData 吗?

    我刚刚开始阅读 MongoDB 和 CouchDB 等 NoSQL 技术 我有兴趣知道是否可以使用 MongoDB 或任何 NoSQL 技术来替代 Core Data 应用程序 核心数据应用程序可能需要很长时间来学习和实现 特别是如果您的应
  • 谷歌云视觉 API - Python

    我似乎找不到在哪里添加 API 密钥 也找不到在我的 google 云视觉代码中找到 google 凭证文件的位置 import argparse import base64 import httplib2 import validator
  • 找不到概念模型类型

    我在 MVC3 项目 A 和 B 中有两个实体数据模型 我最近添加了新的实体数据模型 B 来处理一些新功能 问题是现在现有代码已停止工作 并且在尝试访问实体模型 A 中的代码时出现以下错误 错误信息是 找不到概念模型类型 project m
  • 意外删除表时恢复 cassandra 集群数据

    如您所知 Cassandra 集群具有复制功能 可以防止数据丢失 即使集群中的某些节点发生故障也是如此 但是 如果管理员不小心删除了一个包含大量数据的表 并且该命令已经由集群中的所有副本执行 这是否意味着您丢失了该表并且无法恢复它 有什么建
  • Python PrettyTable:在表格标题上方添加标题

    我有一个生成多个表的脚本 这些表都具有相同的列名和非常相似的数据 到目前为止 我一直通过在每个表之前打印标题来使每个表变得唯一 即 print Results for Method Foo table 1 print Results for
  • 机器人框架中“If语句”的使用

    我们如何在机器人框架中使用if语句 我想仅当关键字满足某些条件时才执行它 否则它会执行其他代码 这在机器人框架用户指南 http robotframework org robotframework latest RobotFramework
  • WT中如何清理内存?

    更新 2013 年 3 月 27 日 您还必须意识到 从 Wt 3 3 0 开始 只有收到请求后才会清除会话 请参阅这个回复 http redmine webtoolkit eu boards 2 topics 5614 r 5615 me
  • NetBeans 模块项目中是否可以依赖 JAR 文件?

    我创建了一个 NetBeans 模块项目 需要添加对我创建的 JAR 文件的依赖项 这可能吗 我只看到添加对其他模块的依赖项的选项 我正在使用 NetBeans 6 5 1 THANKS 模块只能依赖于其他模块 创建引用您的类的库 然后创建
  • 循环遍历动态添加元素的数组

    jQuery 新手 请求帮助解决我无法解决的问题 克隆的表行包含