当前位置: 首页 > 面试题库 >

jQuery serializeArray没有拾取动态创建的表单元素

于意智
2023-03-14
问题内容

我有一个使用ajax动态创建的表单(因为表单元素的数据必须来自数据库),我想序列化表单元素以由ajax提交。我目前正在使用jQuery网站上的代码测试我的理论,以查看是否可以拾取表单元素,这就是问题所在:

$(document).ready(function() {
    $('#btnCustomSearch').live('click', function() {
            $('#results').html('');
            alert($('#customSearchTable :input').serializeArray());
            // get all the inputs into an array.
            var fields = $('#customSearchTable :input').serializeArray();
            jQuery.each(fields, function(i, field) {
                $("#results").append(field.name + " = " + field.value + ", ");
            });

            // now we'll reformat the data as we need

            // here we'll send the data via ajax

    });
});

我需要在提交之前对数据进行一些更改,并且尚未编写此代码,但是我发现,页面加载时存在的页面上的所有输入元素均被正确拾取,可以正确拾取使用Javascript填充的内容,但是将忽略使用Ajax创建的任何内容。

我知道通常可以使用“实时”解决此问题,但是我不清楚如何使用来解决此问题serializeArray()。使用Ajax会将其他表单元素添加到中,#customSearchTable而这些元素是未被选择的。

任何帮助,不胜感激。

谢谢


问题答案:

我将在这里进一步说明评论:

当您调用.serializeArray()它时,它就像<form>提交一样或尽可能接近地循环遍历,以获取要提交的元素。关键部分在这里:

.filter(function() {
  return this.name && !this.disabled &&
         (this.checked || rselectTextarea.test(this.nodeName) ||
         rinput.test(this.type));
})

就像<form>提交将不包含没有name属性的元素一样,.filter()using
的调用this.name将过滤掉那些要序列化的元素。



 类似资料:
  • 问题内容: 使用jQuery 动态创建隐藏的 输入 表单字段的最简单方法是什么? 问题答案: 要回答第二个问题:

  • 问题内容: 我正在写一个表单,其中包含更改选择列表时动态加载的一些文本输入元素。 问题是,当我提交表单时,那些元素不会在发布到服务器的数据中发送。 我需要做什么才能使那些动态创建的元素“进入”要提交的表单? 代码是这样的: Ajax调用返回的html是: 而且,如果我在调用ajax方法后使用firebug来查看页面,则动态加载的html就在应具有的层次结构中,即形式正确。 但是,当我单击“提交”按

  • 问题内容: 我在mysql上创建数据库。首先创建主体表,每个表平均有30列。日志表的标准是引用表的pk加上每列*2。像这样: 参考表: 日志表: 现在,我想要创建一个过程,在该过程中,我将表名作为参数传递,并生成表日志查询并执行它。 做这个的最好方式是什么? 问题答案: 为了使一个字符串代表一个表(或数据库)名称,您将需要用变量连接查询字符串,并在存储过程中准备/执行一条语句。这是一个基本示例。

  • 我一直在尝试使用springboot和flyway创建一个web应用程序。构建工具是Gradle。然而,当我尝试运行程序时,Flyway只创建了一个名为Flyway_schema_hystory的表,但不从SQL脚本创建表。脚本<code>V1__Create_all_tables。sql位于正确的包中。<code>构建中的依赖项。添加了gradle</code>,在<code>应用程序中添加了f

  • 本文向大家介绍jQuery实现表格元素动态创建功能,包括了jQuery实现表格元素动态创建功能的使用技巧和注意事项,需要的朋友参考一下 Jquery实现表格元素的动态创建,本质是通过构造一个Dom Node节点,并且拼接到表格的Dom树上的子叶位置。 HTML正文: Javascript处理代码: 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍angular学习之动态创建表单的方法,包括了angular学习之动态创建表单的方法的使用技巧和注意事项,需要的朋友参考一下 准备工作 使用ng new async-form创建一个新工程,在app.module.ts中引入ReactiveFormsModule模块并在根模块中导入 构建表单元素的基类 继承表单元素的基类 选择框元素的数据类型继承基类,设置了controlType 为