当前位置: 首页 > 面试题库 >

如何使用AJAX替换Rails 3中的div?

李捷
2023-03-14
问题内容

我试图使用RJS替换DOM中的div。这是我尝试的代码,控制器具有此方法:

def change
  render :update do |page|
    page.replace(:test_id, :partial => "input",:locals =>{ :type => 'text', :name => 'user[user][contactinfo][city]', :val => "", :size => '244', :placeholder_text => 'Yes it is working...'})
  end
end

该视图包含:

<div id = "test_id"></div>
<%= link_to "AJAX", "/poc/change", :remote => true %>

现在,我想div id="test_id"用提到的部分替换。

我得到的输出是:

try {
Element.replace("test_id", "<input type=\"text\" id=\"user[user][contactinfo][city]\" name=\"user[user][contactinfo][city]\" value=\"\" placeholder=\"Yes it is working...\" style=\"width:244px; height:33px; border:0; color:#646464; background:url(/images/form_textfield_244.png) 0 5px no-repeat; padding:12px 5px 0 5px; margin:0 0 10px 0;\" />\n");
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.replace(\"test_id\", \"<input type=\\\"text\\\" id=\\\"user[user][contactinfo][city]\\\" name=\\\"user[user][contactinfo][city]\\\" value=\\\"\\\" placeholder=\\\"Yes it is working...\\\" style=\\\"width:244px; height:33px; border:0; color:#646464; background:url(/images/form_textfield_244.png) 0 5px no-repeat; padding:12px 5px 0 5px; margin:0 0 10px 0;\\\" />\\n\");'); throw e }

这可以在浏览器中看到。谁能解释我要去哪里错了?预期的输出是div应该替换为给定的任何内容。


问题答案:

我建议您不要再使用RJS。更好的方法是使用您希望JavaScript生成的JS视图。

例如,如果您使用jQuery,则可以添加一个文件:

changes.js.erb

在其中添加Javascript:

$('#test_id').html("<%= escape_javascript(render :partial => "input",:locals =>{ :type => 'text', :name => 'user[user][contactinfo][city]', :val => "", :size => '244', :placeholder_text => 'Yes it is working...'}) %>")

现在,如果您调用/proc/change.js,则可以看到生成的JS,就像在页面中执行一些JS一样。



 类似资料:
  • 问题内容: 我如何实现以下目标: 使用jQuery 我的div ID 在哪里? 问题答案:

  • 问题内容: 如何替换ajax响应中的html元素?我所知道的是删除元素,如何用ajax响应替换已删除的标签?例如: 我有这样的代码: 当我单击一个按钮时,对codeginter控制器进行了ajax调用,在这里我接收到从数据库中提取并在另一个视图中呈现的新数据,该视图从ul开始并在ul结束时结束。 在ajax成功函数中,我这样做: 问题答案: 您可以使用replaceWith(请参阅:http :/

  • 问题内容: 我试图将字符串分成数组并替换为,但无法做到,我也尝试了String.replaceAll这样的东西。 我想提供一个通往JNI的路径,并且它只能以这种方式读取。 问题答案: 在这种情况下不要使用- 这是用正则表达式指定的,这意味着您需要更多的转义。这应该很好: 请注意,由于Java字符串文字中的原因,反斜杠加倍-因此此处涉及的 实际 字符串是“单反斜杠”和“双反斜杠”-而不是双倍和四倍。

  • 问题内容: 我有一个文件“ test.txt”,其中包含以下内容 我要做的是将它们替换为: 但是为什么这段代码不起作用? 什么是正确的方法? 问题答案: 使用代替。并添加标志以替换所有内容。

  • 问题内容: 在讨论特定问题之前,我需要解释一些基本步骤。 首先,所涉及的应用程序处理客户在线约会的管理。 顾客填写完美容中心的护理表格并提供其信息后,将进入确认页面。 现在,此页面执行ajax请求以将约会存储在数据库中。 如果一切成功,将显示一个页面,其中包含约会的详细信息以及成功消息。 问题在于该页面当前仅显示在响应中,即在选项卡网络控制台浏览器中。 所以我的问题很简单: 即使在StackOve