Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails在单击时更改表单中的输入类型_Javascript_Jquery_Html_Ruby On Rails - Fatal编程技术网

Javascript Rails在单击时更改表单中的输入类型

Javascript Rails在单击时更改表单中的输入类型,javascript,jquery,html,ruby-on-rails,Javascript,Jquery,Html,Ruby On Rails,我有一个在rails中创建帖子的表单。我让身体成为可选的。我使用ckeditor编辑主体细节,但加载需要一些时间,因为主体是可选的,我不想总是加载它 我使用普通文本区域输入类型,当用户单击它时,我想用我的cjtext区域字段替换该文本区域 我目前正在尝试使用jQuery函数,如果我传入一些文本,它就可以工作,但如果传入整个文本区域,它就不能工作 这是我的虚拟文本区域的外观: <%= f.text_area :body, placeholder: "Enter more optional d

我有一个在rails中创建帖子的表单。我让身体成为可选的。我使用ckeditor编辑主体细节,但加载需要一些时间,因为主体是可选的,我不想总是加载它

我使用普通文本区域输入类型,当用户单击它时,我想用我的cjtext区域字段替换该文本区域

我目前正在尝试使用jQuery函数,如果我传入一些文本,它就可以工作,但如果传入整个文本区域,它就不能工作

这是我的虚拟文本区域的外观:

<%= f.text_area :body, placeholder: "Enter more optional details...", cols: 25, rows: 3, required: true, id: 'textarea', :onclick=>"replaceField(#{f.cktext_area :body});"%>
这是我的jQuery,用于使用传递到函数中的值更改文本区域:

function replaceField(ckeditor)
{
    $("#form_body").replaceWith('<div id="form_body">'+ckeditor+'</div>');
}
正如我前面提到的,如果我传入一些文本,这是有效的,但如果传入整个f.cktext_区域字段,则不起作用


有没有其他方法可以实现这一点?

我可能会让服务器吐出所有HTML,在ckeditor输入上或在div上使用“隐藏”类或类似的类。然后单击处理程序只需要进行几个类切换。显然,一些CSS会处理“隐藏”的情况。这取决于什么触发了编辑器的加载。js处理程序可能需要“激活”ckeditor。我就是这么做的,它就像一个符咒一样工作!