假设我有一个多形式的页面,例如:jQuery Ajax POST响应 - 知道哪个表单提交?
<form id="A" class="jaxy" ... />
<form id="B" class="jaxy" ... />
<form id="C" class="jaxy" ... />
然后,我有一些JQuery的
$('.jaxy').live('submit', function() {
$(this).startLoadingSpinner;
$.post(this.action, $(this).serialize(), $(this).stopLoadingSpinner, "script");
return false;
});
当“jaxy”表单提交有一个Ajax POST请求,服务器会响应用下面的一些脚本:
// The code I wish I had...
// If there was an error with the form it might respond...
$(whichever_form_posted).replaceWith("<form id="B" class="jaxy" .../>")
// or if everything went well it might...
$(whichever_form_posted).empty();
alert("Everything is right with the world! Give yourself a pat on the back.");
我明显遇到的麻烦是知道哪个表单首先提交了发布请求。方式是看到它我有3种可能的路线:
- 我可能会发送一个DOM选择器在POST参数?或
- 我可以请求一个HTML响应并插入响应数据BUT,如上图所示I 可能不想替换,所以这对我来说不是真正的选择。
- 我的首选项以某种方式在响应中创建一个$ .fn.function原型,该原型可以在提交元素上调用。这必须仔细确定范围或唯一性,以便任何后续表单提交都不会重新定义该功能。
我真的很难找到解决办法,我会很感激这方面的任何想法。这不一定相关,但我在RoR环境中使用它,并且POST请求是对REST控制器操作的.js响应。更多的一个jQuery的问题,我猜想一个RoR。
亲切的问候,
凯文。
:)这是我第一次尝试尝试。感谢您的建议。 – 2010-07-21 09:16:40
我应该补充说,阻止我做这件事的唯一原因是我不喜欢修改HTML以适应JS,但是您是正确的 - 它确实看起来像是一个明显的解决方案。 – 2010-07-21 09:22:22
我会给你一票,但我在这里没有名誉! – 2010-07-21 09:27:47