繁体   English   中英

提交带有Ajax字段数量未知的HTML表单

[英]Submitting a html form with an unknown amount of fields with ajax

我有一个由成对的文本字段组成的表单。 用户可以根据需要创建任意多对,并填写字段。 字段行添加到表的底部。 这是格式的示例:

<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的别名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM