如何将HTML5数据属性添加到R​​ails表单标签标签? [英] How to add HTML5 data- attributes to a rails form label tag?

查看:162
本文介绍了如何将HTML5数据属性添加到R​​ails表单标签标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <%= form_tag(../ vehicles,方法:get)do%> 
< div>
< div>
<%= label_tag(:address,t(ui.reservations.pickup),data-addr:'here')%>
< / div>
< div>
<%= label_tag(:address,t(ui.reservations.between_now_and_param,param:@start_date.strftime(time_format)))%>
< / div>
< div>

我想为第一个标签添加一个HTML数据属性,所以我试过:

 <%= label_tag(:address,t(ui.reservations.pickup),data-addr:'here')%> ; 

但是我得到一个语法错误:

预订中的SyntaxError#new

  ... / _ form.html.erb:8:语法错误,意外的tLABEL 

'); @ output_buffer.append =(label_tag(:address,t(ui.reservations.pickup),data-addr:'here')); @ output_buffer.safe_concat('...

我可以将它添加为

 <%= label_tag(:address,t(ui.reservations.pickup),data:'here')%> 

 < label for =address data =here> 

但我似乎无法添加 data-something 属性。我得到语法错误。

如何做到这一点?
<解决方案由@vee提供的答案将正确呈现此错误。您收到语法错误的原因是因为 data-addr:'here' 无效r uby代码,也就是说,您不能使用带有连字符的键的JSON散列符号。您可以修改它以正常工作,如下所示:

 <%= label_tag(:address,t('ui.reservations。 'data-addr'=>'here'%> 

但推荐的方法是声明'数据'属性的嵌套散列:

 <%= label_tag(:address,t('ui .reservations.pickup'),:data => {:addr =>'here'}%> 

或简单地(如@vee建议):

 <%= label_tag(:address,t('ui .reservations.pickup'),data:{addr:'here'}%> 



[OP编辑:]
我还发现下划线会产生破折号!例如:

 <%= label_tag(:address ,t('ui.reservations.pickup'),data:{from_base:'here'}%> 

产生

 < label for =addressdata-from-base =here> 
皮卡:
< / label>


I have a rails form that has this code:

<%= form_tag("../vehicles", method: "get") do %>
  <div>
    <div>
      <%= label_tag(:address, t("ui.reservations.pickup"), data-addr: 'here') %>
    </div>
    <div>
      <%= label_tag(:address, t("ui.reservations.between_now_and_param", param: @start_date.strftime(    time_format))) %>
    </div>
    <div>

I want to add a HTML data attribute to the first label, so I tried:

<%= label_tag(:address, t("ui.reservations.pickup"), data-addr: 'here') %>

but I get a syntax error:

SyntaxError in Reservations#new

.../_form.html.erb:8: syntax error, unexpected tLABEL

');@output_buffer.append= ( label_tag(:address, t("ui.reservations.pickup"), data-addr: 'here') );@output_buffer.safe_concat('...

I can add it as

    <%= label_tag(:address, t("ui.reservations.pickup"), data: 'here') %>

That generates:

<label for="address" data="here">

but I don't seem to be able to add data-something attributes. I get syntax error.

How can I do this?

解决方案

The answer provided by @vee will render this correctly. The reason you are getting a syntax error is because data-addr: 'here' is not valid ruby code. That is, you can't have use the JSON hash notation with a key containing a hyphen character. You can modify it to work properly like this:

<%= label_tag(:address, t('ui.reservations.pickup'), 'data-addr' => 'here' %>

But the recommended approach is to declare a nested hash for 'data' attributes:

<%= label_tag(:address, t('ui.reservations.pickup'), :data => {:addr => 'here'} %>

Or simply (as @vee suggested):

<%= label_tag(:address, t('ui.reservations.pickup'), data: {addr: 'here'} %>

[OP edit:] I also found that underscores generate dashes! For example:

<%= label_tag(:address, t('ui.reservations.pickup'), data: {from_base: 'here'} %>

generates

<label for="address" data-from-base="here">
    pickup:
</label>

这篇关于如何将HTML5数据属性添加到R​​ails表单标签标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆