首页 > 解决方案 > 提交表单时没有任何反应

问题描述

<div id="main-create-task"
<div>

 <div id="newtask-form>"
 <%= form_with model: [@categories,@categories.tasks.build] do |form| %>
 <% if task.errors.any? %>
 <div id="error_explanation">
  <h2><%= pluralize(task.errors.count, "error") %> prohibited this task from being saved:</h2>

  <ul>
  <% task.errors.each do |error| %>
         <li><%= error.full_message %></li>
  <% end %>
  </ul>

  <% end %>
 </div>

 <div id="create-task">
  <div>
 <h1>New Task</h1>
 </div>

 <div>
  <%= form.label :Task_name %>
  <%= form.text_field :taskname%>
 </div>
  <br>

 <div>
  <%= form.label :Description %>
  <%= form.text_area :taskbody%>
 </div>
  <br>

 <div>
  <%= form.label :Time %>
  <%= form.text_field :tasktime%>
 </div>
  <br>

  
  <%=form.submit "Submit" %>
  </div>
 </div>
 <% end %>
 </div>
 </div>
 </div>

这是我的任务控制器。

def new
@categories = current_user.categories.find(params[:category_id])
@task = Task.new
end


 def edit
 @categories = Category.find(params[:category_id])
 @task = Task.find(params[:id])
 end


 def create
  @category = current_user.categories.find(params[:category_id])
  @task = @category.tasks.build(task_params)
  @task.user_id = current_user.id

  if @task.save
    redirect_to categories_path
  else
    redirect_to category_path
  end

我运行这段代码,它没有给我任何错误。当我单击提交时,没有任何反应。没有错误,它真的什么也没发生。

我看到它正在由 javascript 处理。我没有接触 Javascript 中的任何内容,我们现在不使用 javascript。需要帮助,稍后介绍

标签: ruby-on-rails

解决方案


Ruby on Rails 带有 JS。默认情况下form_with,如果使用不显眼的 JavaScript 驱动程序(如 rails-ujs),则在后台通过 XMLHTTPRequest 附加提交表单的 data-remote 属性。来源

要禁用远程提交,请使用local: true

<%= form_with model: [@categories,@categories.tasks.build], local: true do |form| %>

推荐阅读