我是Rails的新手,我对选项选择器有一个大问题。
如果用户想要使用selectbox或text_field,则可以选择每个复选框。
jquerycode通过显示或隐藏div来完成他的工作。
但是当我提交表单时,:task_name
始终是task_new
div的值,但永远不会是task_use
的值。
我做错了什么?
有没有办法通过rails功能隐藏/显示div? 也许我设置了一些tmp变量并给出:task_name值?!怎么办呢?
更新
我用tmp_variables
尝试了这个技巧。得到一个值,但现在我卡住了,如何将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>
答案 0 :(得分:0)
对于Rails,显示或隐藏哪个div无关紧要。将评估两个代码片段。因此,第二个片段只是覆盖为task_name设置的任何值。
您可以使用两个单独的表单并在这些表单之间切换,但我想您的字段多于上面列出的您不想切换的字段:)
也许你可以尝试替换实际的task_name DOM元素(somwhat一个“真正的”切换),同时将值复制为this guy did,但听起来很复杂:(