使用ajax提交一个包含未知数量字段的html表单

Submitting a html form with an unknown amount of fields with ajax

本文关键字:未知数 字段 表单 html 包含 一个 提交 ajax 使用      更新时间:2023-09-26

我有一个由成对文本字段组成的表单。用户可以创建任意数量的配对并填写字段。字段行被添加到表的底部。以下是格式示例:

<form id="dataForm">
<table id="textTable">
<tbody>
<tr>
  <td><h2>Dancer</h2></td>
  <td><h2>Place</h2></td>
</tr>
<tr>
  <td><input type="text" name="Dancer0" size="15" id="Dancer0"></td>
  <td><input type="text" name="Place0" size="15" id="Place0"></td>
</tr>
<tr>
  <td><input type="text" name="Dancer1" size="15" id="Dancer1"></td>
  <td><input type="text" name="Place1" size="15" id="Place1"></td>
</tr>
</tbody>
</table>
<input type="button" id="newRow" value="New Row" accesskey="/" onclick="moreFields();">
<input type="button" value="Update" name="Submit" onclick="submitForm(this.form);">
</form>

我遇到的问题是使用ajax将表单正确提交到外部php页面。这就是我现在使用的功能:

function submitForm(form)
{
jQuery.ajax({
    type: "POST",
    url: <?php echo '"'.dirname(curPageURL()).'/ResultsUpdater.php"' ?>,
    data: form.serialize(),
    success: function(msg){
        alert(msg);
    }
});
return false;
}

在其他例子中,我看到他们使用$表示jQuery,它会放在"form"前面:$(form).serialize()$.ajax({...,但我的服务器不喜欢$。我也尝试过jQuery.form.serialize(),但也不起作用。我在控制台中得到的错误总是沿着"TypeError: 'undefined' is not an object (evaluating 'jQuery.form.serialize')" 的路线

如果我能向php文件提交一堆键值对(根据我对serialize()的理解,这将是非常棒的。

你可以试试这里的表格

只需选择其中一个下拉项即可查看表单。

感谢

您可以这样做:

jQuery("#dataForm").serialize();

我已经在你引用的页面上成功地尝试过了。

由于$在您的页面上是未定义的,我的最佳猜测是您加载了一些将$重置为未定义的脚本。因此,最好的方法是返回使用jQuery,因为$只是jQuery的别名。