Rails 4.我有一个视图,其中包含以下代码,其中我在textarea中输入并希望将代码镜像模式应用于代码到文本区域2.不幸的是我无法读取文本的内容区域1.即使我在文本区域1中粘贴代码并点击提交按钮,当我在JS文件中收到它时,它总是为空。
categories / show.html.erb:
<div id="ccontainer">
<div class="hero-spacer">
<%= text_area_tag :cols => "30", :rows => "10", :id => "myText", :class => "editor1-pane" %>
<%= text_area_tag :cols => "30", :rows => "10", :id => "myText2", :class => "editor2-pane" %>
<%= button_to_function "✓", '$(this).toggleClass("buttonGrey buttonGreen");', :class => "buttonGrey" %>
</div>
</div>
categories.js有:
$(document).ready(function () {
$(".buttonGrey").on("click", function() {
alert("Confirmed"+ $('#myText')); <--- Always returning null
console.log($('.editor1-pane'));
if(document.getElementById("myText").value == null){
alert('NULL >>');
}
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById('myText'), {
lineNumbers: true,
matchBrackers: true,
styleActiveLine: true,
theme: "eclipse",
mode: { name: "xml", htmlMode: true }
}
);
// do something
document.getElementById("myText2").value = myCodeMirror.getValue();
})
});
我不知道自己做错了什么!
答案 0 :(得分:1)
Rails希望text_area_tag
后跟name, content, options
,但您刚刚提供了选项。
因此,Rails不是将“myText”指定为id,而是将整个选项列表分配为name
(检查HTML输出以查看此内容),而不是设置任何选项。因此,你的jQuery选择器找不到任何东西。
试试这个:
<%= text_area_tag "myText", nil, :cols => "30", :rows => "10", :class => "editor1-pane" %>
这应该将文本区域的ID和名称设置为“myText”并正确设置选项。