在我的Rails控制器中,我需要一个像这样格式的数组direct_filter_params(多维数组,可能有n个元素):
direct_filter_params = [['gender','equals','male'], ['age','range',21,25]]
我从一个表单中得到这个,有一个hidden_field_tag:direct_filter_params:
<%= form_tag(user_demography__path, :method => :get, :remote => true) do %>
<%= hidden_field_tag :direct_filter_params %>
<%= render :partial => "user_demography_filters" %>
<%= submit_tag "Find Users", :class => "btn" %>
<% end %>
我需要从表单中获取值。在click()事件触发后,我可以在javascript文件中获取值,但我遇到的问题是Javascript / Jquery没有以正确的格式设置值。我知道这很令人困惑,所以我举一个简短的例子。
var a = [];
attribute = 'gender';
condition = 'equals';
value = 'Male';
var b = [attribute, condition, value];
$("direct_filter_params").val(b);
c=$("#direct_filter_params").val();
$("#direct_filter_params").val(c+b);
这将元素的值设置为:
<input type="hidden" name="direct_filter_params" id="direct_filter_params" value="gender,equals,Maleage,range,21,25">
注意值是“性别,等于,马来人,范围,21,21”。我需要的是顶部提到的原始格式的值。我已经搜索了几个小时,但是我无法解决这个问题,尽管所有的逻辑都已完成,但我仍陷入这个小问题。
答案 0 :(得分:0)
试试这个
var b = [attribute, condition, value],
c = $("#direct_filter_params").val(),
a = [b,c];
$("#direct_filter_params").val(JSON.stringify(a));