如何在form_tag rails4中使用重置按钮

时间:2016-01-25 04:03:42

标签: ruby ruby-on-rails-4 rubygems

 <%= form_tag do %>
  <div class="container">
      <div class="row">
          <div class="input-field col s12">
              <%= text_field_tag :sid , params[:sid], :length => 9 %>
              <h6 class="grey-text" style="font-size: 1vw">Ex.570510XXX</h6>
          <%= label_tag(:sid, "Student ID") %>
      </div>

      <div class="input-field col s6">
           <%= text_field_tag :semester, params[:semester], :length => 1 %>
           <%= label_tag(:semester, "Semester") %>
           <h6 class="grey-text" style="font-size: 1vw">Ex.Term 2 = input 2</h6>
      </div>

       <div class="input-field col s6">
            <%= text_field_tag :year, params[:year], :length => 2 %>
           <%= label_tag(:year, "Year") %>
           <h6 class="grey-text" style="font-size: 1vw">Ex.2558 = input 58</h6>
      </div>

      <br><br><br><br><br><br><br><br><br><br><br>

      <div class="col s6">
         <%= button_tag(value: 'Submit',class: "waves-effect waves-light btn right") do %>
            Submit
            <i class="material-icons right">send</i>
          <% end %>
      </div>

      <div class="col s6">
          <%= button_tag(value: 'CLEAR',type: 'reset',class: "waves-effect waves-light btn") do %>
            CLEAR
             <i class="material-icons right">delete</i>
          <% end %>
      </div>     
</div>

我想要一个button_tag type = reset来清除每一页

在我提交之前重置时它是有用的。如果我按下提交它不起作用。

试试我的网页:http://timetable4cmu.herokuapp.com/

输入:StudentID = 570510629,学期= 2,年= 58 当你输入并提交清除按钮将无法正常工作。

请帮助我!!

2 个答案:

答案 0 :(得分:0)

如果您在提交后不希望表单中的参数,则不应在表单字段中传递参数。

由此:

<%= text_field_tag :sid , params[:sid], :length => 9 %>
<%= text_field_tag :semester, params[:semester], :length => 1 %>
<%= text_field_tag :year, params[:year], :length => 2 %>

要:

 <%= text_field_tag :sid , '', :length => 9 %>
 <%= text_field_tag :semester, '', :length => 1 %>
 <%= text_field_tag :year, '', :length => 2 %>

答案 1 :(得分:0)

是的,表单reset按钮在提交后无法正常工作,我认为(不确定)因为它无法重置默认值(在提交显示表单后填充值)。您可以使用js/jquery手动更新表单数据(使输入文本数据''为空字符串)

function resetForm(){
  $('input[ name=sid]').val('');
  $('input[ name=semester]').val('');
  $('input[ name=year]').val('');

}

并使用jquery

调用此方法
$('button[type=reset]').click(function(event){
 event.preventDefault();
 resetForm();
});