如何使用data-id从hidden_​​field_tag获取价值?

时间:2016-07-28 07:04:56

标签: javascript jquery ruby-on-rails ruby-on-rails-4

如何使用hidden_field_tag属性获取data-id的值?

html.erb

<%= hidden_field_tag "data-id" => 'cart-total', "value" => "#{total}" %>
#=> <input type="hidden" name="{"data-id"=>"cart-total", "value=>"1"}" id="__data-id__cart-total___value___1__">

的JavaScript

var cartTotal = $("[data-id=cart-total]").val();
console.log(cartTotal); // undefined

我不知道用rails hidden_field_tag写这个的正确方法。

3 个答案:

答案 0 :(得分:0)

您的元素输出错误,name中有一个对象:

<input type="hidden" name="{"data-id"=>"cart-total", "value=>"1"}" id="__data-id__cart-total___value___1__">

我认为它应该是这样的(我不使用rails ):

<%= hidden_field_tag "hidden", total, "data-id" => "cart-total" %>

然后你应该至少使用一个更好的选择器作为基本元素或其他东西:

var cartTotal = $("input[data-id=cart-total]").val();

答案 1 :(得分:0)

您尚未为hidden_field_tag

提供姓名
<%= hidden_field_tag :field_name, "value" => "#{total}", "data-id" => 'cart-total', %>

使用像这样的数据ID

访问它
var cartTotal = $("[data-id='cart-total']").val();

答案 2 :(得分:0)

根据documentation

hidden_field_tag(name, value = nil, options = {})

Erb的:

<%= hidden_field_tag :hidden, total, "data-id" => 'cart-total' %>

JS:

$("[data-id='cart-total']").val();