感谢这里的帮助,我得到了一段代码示例。当我尝试将它应用到真实的东西时,有些东西不能正常工作。
在我看来(new.html.erb),我有以下内容:
<%= f.hidden_field :addtl_attendee_payment, :value => Addtl_attendee_charge %>
(Addtl_attendee_charge来自配置文件)
在我的javascript文件中,我有以下内容:
function display_value() {
var a = $("#addtl_attendee_payment");
alert(a.val());
}
在我的new.html.erb的另一个地方,我有以下内容:
<script><%= "display_value()" %></script>
当我运行它时,我在警告框内得到“未定义”。如果我查看HTML(使用firefly),这就是我得到的:
<input id="payment_addtl_attendee_payment" type="hidden" value="500" name="payment[addtl_attendee_payment]">
付款是型号名称。这是适用于测试代码的相同类型的代码。有什么想法吗?
再次注意,型号名称为Payment,虽然我没有向属性名称添加付款,但Rails会自动添加它。我确实在javascript文件上尝试了另一种变体:
function display_value() {
var a = $("#payment_addtl_attendee_payment");
alert(a.val());
}
但这也不起作用(获得相同的消息)。我认为添加payment_是正常的并且由Rails完成(但我可能是错的,作为新手)
答案 0 :(得分:5)
注意,渲染标记中有不同的ID:
var a = $("#payment_addtl_attendee_payment");
答案 1 :(得分:0)
如果您的ID已修复,那么您可以使用
var a = $("#payment_addtl_attendee_payment");
获取值,或者你可以使用这段代码
var a = $("#_addtl_attendee_payment");
答案 2 :(得分:0)
为什么不能为隐藏字段添加唯一的类属性并通过它访问值。
<%= f.hidden_field :addtl_attendee_payment, :class="some_unique_class_id", :value => Addtl_attendee_charge %>
您可以访问以下值。
function display_value() {
var a = $(".some_unique_class_id");
alert(a.val());
}