【发布时间】:2018-10-11 20:49:59
【问题描述】:
好的,所以在我的 js 中,我将输入值设置为 js 值
$('input[name="mode"]').val(editor.session.getMode().$id);
这在我的新视图表单中运行良好
<form id="snippetForm" action="/snippets/new" method="POST">
<input class="hidden" type="text" name="mode" form="snippetForm"/>
</form>
将参数传递给我的控制器
"mode"=>"ace/mode/ruby"
但是当我为我的更新表单做同样的事情时
<form id="snippetForm" action="/snippets/<%= @snippet.id %>/edit" method="POST">
<input class="hidden" type="text" name="mode" form="snippetForm"/>
<input id="hidden" type="hidden" name="_method" value="patch">
</form>
在我的控制器参数上我得到一个空字符串
"mode"=>""
【问题讨论】:
-
他们在同一个页面上吗?尝试命名一种模式1,看看是否能解决它。
-
不,当它呈现另一个不存在时,它们在单独的视图中,我也尝试过重命名:(帽子是我的第一个想法
-
这可能与 jquery 准备好与 dom 准备好有关。尝试在设置值之前在浏览器中设置断点,看看 $('input[name="mode"]') 是否返回您认为应该返回的值,或者在该点是否未定义。
-
很抱歉,我是 js 新手,不太清楚该怎么做
-
更新:我做了console.log,它吐出了我想要的东西,所以范围很好
标签: javascript ruby sinatra erb ace-editor