我正在尝试从Rails 3项目中的表单页面调用javascript函数。我需要向函数发送特定元素的ID。不幸的是,我无法轻易获取ID,因为它是由插件自动生成的。
我试过这样做:
<%= t.select :number_type, @id_types, {}, {:onchange => "has_other_field(' + the_value.id.to_s + "');"} %>
<% if (!the_value.nil?) && (!the_value.number_type.nil?) && !@id_types_sm.include? the_value.number_type) %>
<script type="text/javascript">
setup_other_field("<%= the_value.number_type %>", ###ID WOULD GO HERE###);
</script>
<% end %>
..但由于我不知道元素的ID,我无法从函数中调用它。
所以现在我正在尝试这样做,通过在输入元素加载时从“onload”调用函数:
<% if (!the_value.nil?) && (!the_value.number_type.nil?) && (!@id_types_sm.include? the_value.number_type) %>
<%# Call the function from the form helper only if the conditions are met %>
<%= t.select :number_type, @id_types, {}, {:onchange => "has_other_field(this.id);", :onload => "setup_other_field('" + the_value.number_type + "', this.id);"} %>
<% else %>
<%# Use the form helper without calling the function %>
<%= t.select :number_type, @id_types, {}, {:onchange => "has_other_field(this.id);"} %>
<% end %>
但我意识到onload对这种情况不起作用。这有什么解决方法吗?我怎么能
A)从第一个选项中的字段中获取元素ID,或
B)加载时从此输入元素调用此函数?
...或C)另一种方法吗?
提前致谢,如果有更多细节可以帮助我,请告诉我。
答案 0 :(得分:1)
如果您在模型中保存了ID,请使用&lt;%= model.id%&gt;
获取此规则的例外情况是在创建对象时,它在写入数据库之前。如果你去编辑或其他地方就可以了。
如果你在页面的某个地方有它:/那么你可以使用jQuery来为你获取它。
&LT; div id =“id_of_the_element”attr_with_my_id =“15”&gt; ABC&lt; / div&gt;
$("#id_of_the_element").attr('attr_with_my_id')
&LT;输入id =“id_of_the_element ...&gt;&lt; / input&gt;
$("#id_of_the_element").value