这完全取决于您如何将该表单提交到服务器。
如果您提交的表单设置了:remote => true 属性,它将通过 AJAX 调用发送到服务器,服务器将能够将其与常规的非 ajax 表单请求区分开来:
respond_to do |format|
format.js #this renders the <actionname>.js.erb file and executes it on the client
end
jquery_ujs 助手将执行服务器返回给他的 javascript 代码。
您可以在 <actionname>.js.erb 文件中编写任意 JavaScript 代码,如下所示:
$('#trigger_link').text('edit comment');
如果您不使用远程表单而是进行普通的$.ajax 调用,您可以简单地挂钩到jQuery 提供的success 回调,但我想这很明显。
更新:
似乎问题在于您不知道是哪个链接触发了对话框的打开。
通常在某个地方你有一个 jQuery 函数可以为你打开对话框。在呈现包含触发链接的初始列表时,我假设您有一些方法可以将它们与页面上的其他链接区分开来(可能通过像 .trigger 这样的 css 类)。
你可以这样做:
$('.trigger').click(function() {
window.trigger_link = this;
});
请注意,上面的这个小 sn-p 不会覆盖您现有的打开弹出窗口的单击事件处理程序。它也会被执行。
现在我们跟踪打开窗口的链接(点击触发链接时打开窗口 - 我们总是保存最后点击的触发链接),一旦提交表单,我们可以执行以下操作:
$(window.trigger_link).text('edit comment');
因为 window.trigger_link 指的是正确的链接。