0

Ruby 1.8.7 と Rails 2.3.11 を使用しています。シンプルなフォームがあり、create.js.erb に ajax を入れたい:

alert('call from ajax');

コントローラーで、作成アクションを変更します。

def create
  @weburl = Weburl.new(params[:weburl])

  respond_to do |format|
    if @weburl.save
      format.js
      format.html { redirect_to(@weburl, :notice => 'Weburl was successfully created.') }
    else
      format.html { render :action => "new" }
      format.xml  { render :xml => @weburl.errors, :status => :unprocessable_entity }
    end
  end
end

私のフォーム部分

<% form_remote_for(weburl) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :url %><br />
    <%= f.text_field :url %>
  </p>
  <p>
   <%= f.submit 'Save' %>
  </p>
<% end %>

私の new.html.erb ファイルは

<h1>New weburl</h1>
<%= render :partial => 'form', :locals=>{:weburl=>@weburl}%>
<%= link_to 'Back', weburls_path %>

フォームを送信すると、ブラウザに次のように表示されます。

alert('call from ajax');

JavaScriptポップアップアラートメッセージの代わりに。

4

1 に答える 1

0

より多くのコードを提供してください。問題は、JavaScript コードがクライアント側で実行されていないことです。可能であれば、応答を eval() に入れます。このw3schools チュートリアルをチェックしてください:

于 2013-01-16T18:46:05.930 に答える