Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
Ruby on rails 轨道选择';其他';创建文本字段的选项_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 轨道选择';其他';创建文本字段的选项

Ruby on rails 轨道选择';其他';创建文本字段的选项,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,给定标准选择代码: <%= f.select :type_name, [['Genomics','Genomics'],['Proteomics','Proteomics'],['Transcriptomics','Transcriptomics'],['Other','Other'] %> 有人能解释一下,当选择“其他”时,我将如何创建一个文本字段吗?因此,type_名称可以是select中的选项以外的其他名称 我意识到这是一个简单的问题,但我还没有找到一个简洁的答案 有很多

给定标准选择代码:

<%= f.select :type_name, [['Genomics','Genomics'],['Proteomics','Proteomics'],['Transcriptomics','Transcriptomics'],['Other','Other'] %>

有人能解释一下,当选择“其他”时,我将如何创建一个文本字段吗?因此,type_名称可以是select中的选项以外的其他名称


我意识到这是一个简单的问题,但我还没有找到一个简洁的答案

有很多方法可以做到这一点,但它们都需要JavaScript。我喜欢的一般方法是在表单中放置一个隐藏的文本字段,然后将一个JavaScript事件处理程序附加到
select
标记,该标记在选择“Other”选项时显示该字段

以下是本文的要点。它使用数据属性处理JavaScript绑定。将脚本添加到您的资产中,然后在表单中添加类似的内容:

<%= f.select :type_name, [['Genomics','Genomics'],['Proteomics','Proteomics'],['Transcriptomics','Transcriptomics'],['Other','Other'] %>
<%= f.text_field :type_name_other, "data-depends-on" => "#object_type_name", "data-depends-on-value" => "Other" %>

“#对象_类型_名称”,“数据取决于值”=>“其他”%>

其中,
#object\u type\u name
是下拉列表的HTML id。

有很多方法可以做到这一点,但它们都需要JavaScript。我喜欢的一般方法是在表单中放置一个隐藏的文本字段,然后将一个JavaScript事件处理程序附加到
select
标记,该标记在选择“Other”选项时显示该字段

以下是本文的要点。它使用数据属性处理JavaScript绑定。将脚本添加到您的资产中,然后在表单中添加类似的内容:

<%= f.select :type_name, [['Genomics','Genomics'],['Proteomics','Proteomics'],['Transcriptomics','Transcriptomics'],['Other','Other'] %>
<%= f.text_field :type_name_other, "data-depends-on" => "#object_type_name", "data-depends-on-value" => "Other" %>

“#对象_类型_名称”,“数据取决于值”=>“其他”%>

其中
#object_type_name
是下拉列表的HTML id。

您需要在模型f上创建属性访问器(与type_name_other类似),在最初隐藏的div中的select for type_name_other下面的表单中添加一个文本字段(在CSS:display:none中),然后创建一个javascript监听器,用于检测选择表单何时发生更改,以及所选ansser是否为“其他”显示隐藏字段,否则将其隐藏。然后,在处理表单时,您需要查看type_name_other是否有值,如果有,则使用该值。

您需要在模型f上创建属性访问器(与type_name_other类似),将文本字段添加到最初隐藏的div中type_name_other选择下的表单中(在CSS中:display:none),然后创建一个javascript监听器,用于检测选择表单何时发生更改,以及所选ansser是否为“其他”显示隐藏字段,否则将其隐藏。然后,在处理表单时,您需要查看type_name_other是否有值,如果有,则使用它。

因此,我相信我已经找到了Rails HTML ID,并且我已经找到了它,因此在打开表单时文本框是隐藏的。但是,当我单击“其他”时,它不会出现!ID只是:
…['Other','Other']],{},:ID=>“name\u of_ID”
,对吗?你能发布生成的html吗?页面使用嵌套的表单gem,并且相关的dropbox从第行开始。html看起来不错,但我不熟悉你使用的框架。在模板呈现为HTML之后,您需要找到一种绑定Javascript事件处理程序的方法。也许它触发了一个自定义事件?或者另外,是的。所以我相信我已经计算出了Rails HTML ID,并且我已经得到了它,所以当我打开表单时文本框是隐藏的。但是,当我单击“其他”时,它不会出现!ID只是:
…['Other','Other']],{},:ID=>“name\u of_ID”
,对吗?你能发布生成的html吗?页面使用嵌套的表单gem,并且相关的dropbox从第行开始。html看起来不错,但我不熟悉你使用的框架。在模板呈现为HTML之后,您需要找到一种绑定Javascript事件处理程序的方法。也许它触发了一个自定义事件?或者另外,是的。