1

我想在 JQuery Dialog 中呈现一个模态表单。我利用了在生成 Scaffold 期间创建的现有表单。现在,我面临一些通过对话框按钮而不是 html 提交表单的问题。

单击按钮后,下面的表单将在 JQuery 对话框中呈现。(由脚手架生成)

<%= form_for(@user, :remote=>true) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :user_name %><br />
    <%= f.text_field :user_name %>
  </div>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %><br />
    <%= f.text_field :password %>
  </div>
  <div class="field">
    <%= f.label :account_type %><br />
    <%= f.text_field :account_type %>
  </div>
  <div id="submit-button" class="actions">
    <%= f.submit %>
  </div>
<% end %>

现在,我希望将提交按钮更改为 JQuery 函数。以下代码用于 JQuery 中的按钮。

  <div id="submit-button" class="actions">
    <%= f.submit %>
  </div>

这是模态表单的 Jquery 代码。

   $( "#form" ).dialog({
        autoOpen: false,
        height: 400,
        width: 350,
        modal: true,
        closeOnEscape: true,
        resizable:false,
        buttons: {
            "Create an account": function() {
                    $("#form").submit();
                    $( this ).dialog( "close" );
            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        }
    });

所以本质上是从

  <div id="submit-button" class="actions">
    <%= f.submit %>
  </div>

类似于

  $("#form").submit();

我在这样做时遇到了一些问题,我认为这可能与引用有关,但我不知道如何更改它。任何意见,将不胜感激。

4

0 回答 0