Javascript没有获取属性值

时间:2012-10-29 14:19:53

标签: javascript jquery ruby-on-rails

感谢这里的帮助,我得到了一段代码示例。当我尝试将它应用到真实的东西时,有些东西不能正常工作。

在我看来(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完成(但我可能是错的,作为新手)

3 个答案:

答案 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());
}
相关问题