如何使用jquery重置动态/ ajax-ly添加/创建的表单?

时间:2011-07-26 08:44:04

标签: html jquery

在我的网页中,通过Ajax插入表单。我正在使用$("#my-ajax-returned-form")[0].reset(); 来重置表单,但它对我不起作用。 Firebug控制台显示TypeError: $("#my-ajax-returned-form")[0] is undefined。有任何线索如何修复它?实际流程如下,其简单的vanilla AJAX with jquery

  • 点击图标向服务器发送ajax调用
  • 服务器使用$('#target-div').html(returnedFormHTML)发送一个插入网页的表单,其中包含我的表单,标识为my-ajax-returned-form
  • 用户填写表单并点击保存,使用$.post()
  • 将数据发布到服务器
  • 成功后,我会尝试使用my-ajax-returned-form
  • 尝试重置$("#my-ajax-returned-form")[0].reset();的另一种方法

现在很明显,在某种意义上,表单必须是live,但我无法弄明白:(

以下是主要网页 - http://pastebin.com/rtkr8RUC 这是#my-ajax-returned-form表单 - http://pastebin.com/jtjakgUt 我不能轻易地在jsfiddle上发布完整的代码,请耐心等待

更新 我发现了这个问题,在名为reset的表单中有一个重置按钮,所以很明显form.reset不是一个函数 但textarea仍未重置! 修复了textarea问题

2 个答案:

答案 0 :(得分:1)

undefined清楚地表明找到表单时出现问题。你确定选择器是否正确,你是否在正确的iframe内寻找它等。尝试记录$("#my-ajax-returned-form")以查看它是否找到任何东西。

答案 1 :(得分:0)

你可以尝试$('#my-ajax-returned-form')。eq(0).reset(),但由于选择器是一个id,所以应该是唯一的,这似乎没什么用感。

另一方面,reset() - 函数是否定义了?