私は 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>