1

当用户单击单选按钮时,我想用部分内容更新 div。现在该部分的内容是静态html(可能是表单)。因此,因为我没有任何数据要从服务器获取,所以我不愿意对服务器进行 ajax 调用,只是为了获取该部分并更新 div。这是我尝试过的。

 function loadControlPanel(type)
      {
        alert(type);
        $(controlPanelDiv).appendChild("<%=  render :partial => 'layouts/agency_selection' %>");
      }


<input type="radio" name="view" value="agencies" onClick ="loadControlPanel(this.value)" /> Agencies

但这不起作用,因为渲染替换了那里的整个部分以及在function loadControlPanel(type).

有什么办法可以克服这个吗?或其他更简单的解决方案?

谢谢肖纳克

4

2 回答 2

1

为什么不将布局中的静态部分呈现在隐藏的 div 中,然后克隆该 id 并使用 javascrtipt 将其放入您的 innerHTML 中?

顺便说一句,仅仅调用“render :partial”并不意味着它是一个 Ajax 调用。

于 2011-05-17T03:02:00.450 回答
0

好的,这是我发现的解决方法。我在渲染上调用“gsub”来替换换行符。不过,我仍然愿意接受更优雅的解决方案。

function loadControlPanel(type)
      {
        alert(type);
        $(controlPanelDiv).innerHTML = '<%=  (render :partial => "layouts/agency_selection").gsub("\n","") %>';
      }
于 2011-05-17T00:51:58.030 回答