0

我是 Rails 新手,我对选项选择器有很大的疑问。如果他想使用选择框或文本字段,用户可以选择每个复选框。jquerycode 通过显示或隐藏 div 来完成他的工作。但是当我提交表单时,:task_name总是得到task_newdiv 的值,但永远不会得到task_use. 我做错了什么?

有没有办法通过 rails 函数隐藏/显示 div?也许我设置了一些 tmp 变量并给 :task_name 值?!如何才能做到这一点?

更新: 我用tmp_variables. 得到一个值,但现在我卡住了,如何设置 to 的tmp_variable:task_name<% :task_name = @tmp_variable%>不起作用。

这是代码(new.html.erb):

 Create new Task :
  <input type="checkbox" value="false" name="check" id="check" checked="false" />
  </div>

  <div class="task_use" id="task_use" style="display:block;">
    <%= f.fields_for :task do |t|%>  
    <%= t.select :task_name, Task.all.collect {|n|[n.task_name]}%>
    <%end%>
 </div>
  <div class="task_new" id="task_new" style="display:none;">
    <%= f.fields_for :task do |t|%>
    <%= t.label :task_name %><br />
    <%= t.text_field :task_name %>
    <%end%>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
  <% end %>

   <script>

   $(document).ready(function() {
   $("#check").change(function () {
   if ($('#check').checked == false) {

   } else {
   $('#task_new').toggle();
   $('#task_use').toggle();
   }
   });
   }); 
   </script>
4

1 回答 1

0

对于 Rails,显示或隐藏哪个 div 并不重要。将评估两个代码片段。因此,第二个片段简单地覆盖了为 task_name 设置的任何值。

您可以使用两个单独的表单并在它们之间切换,但我想您的字段比上面列出的字段多,您不想切换:)

也许您可以尝试替换实际的 task_name DOM 元素(有点像“真正的”切换),同时像这个人一样复制值,但这听起来很复杂 :(

于 2012-09-13T15:05:42.947 回答