Javascript:访问';行动';来自RubyonRails生成按钮的属性

Javascript:访问';行动';来自RubyonRails生成按钮的属性,javascript,html,ruby-on-rails,forms,button,Javascript,Html,Ruby On Rails,Forms,Button,我的a RoR应用程序视图中有以下代码行: <%= button_to "Attend Event", attend_event_path(@event), :remote => true, :id => "attend", :class => "tester" %> true,:id=>参加,:class=>测试人员%> 它生成以下代码: <form class="button_to" method="post" action="/events/2/at

我的a RoR应用程序视图中有以下代码行:

<%= button_to "Attend Event", attend_event_path(@event), :remote => true, :id => "attend", :class => "tester" %>
true,:id=>参加,:class=>测试人员%>
它生成以下代码:

<form class="button_to" method="post" action="/events/2/attend" data-remote="true">
    <input id="attend" class="tester" type="submit" value="Attend Event" /> 
    <input type="hidden" name="authenticity_token" value="1GDsVpuZ4nu3OqSUajEtv2gO4m1QASXcceKlw9FRjbMxKFIIYMr741fSVDA8VeXUAolGyY85d7LpvOjfhs4fVA==" />
</form>

现在,可以看到我的
id
class
被放入
input
标签中;我无法将它们放入
表单
标记中。我需要一种方法从表单标记中的
操作
键中拉出
/events/2/attent
,但我无法添加ID来执行此操作,并且document.getElementByClassName不起作用

以前,我有一个链接而不是按钮,还有
document.getElementById(“出席”).getAttribute(“href”)成功了,但我尝试使用按钮,而不是链接

是否有人可以向我推荐一些Javascript代码,让我能够获取
操作
键出的值(或者一些ruby代码,让我能够向表单标记添加ID)?我需要一个Ajax URL的这个值


感谢大家

您可以从
子节点遍历到
父节点
。如果您没有使用
jquery
,那么纯
javascript
,您可以使用
parentNode
parentElement
来获取
parent`

请尝试以下操作:

var inputElement = document.getElementById("attend");
var formElement = inputElement. parentElement;
var formAction = formElement.action;

您可以从
子对象遍历到
父对象
。如果您没有使用
jquery
,那么纯
javascript
,您可以使用
parentNode
parentElement
来获取
parent`

请尝试以下操作:

var inputElement = document.getElementById("attend");
var formElement = inputElement. parentElement;
var formAction = formElement.action;

幸运的是,每个表单输入都有一个
form
成员,指向所有者“form”,因此这就变成了:

var formAction=document.getElementById('attain').form.action

这样做的好处是,您不需要关心输入字段是如何嵌套的,也就是说,如果它不是表单的直接子级,就没有问题

但是,最好的方法是向表单中添加一个显式ID,如下所示:

form_for@model,html:{id:'your form id'}do | f |


并像
var formAction=document.getElementById('your-form-id').action那样访问它

幸运的是,每个表单输入都有一个
form
成员,指向所有者“form”,因此这就是:

var formAction=document.getElementById('attain').form.action

这样做的好处是,您不需要关心输入字段是如何嵌套的,也就是说,如果它不是表单的直接子级,就没有问题

但是,最好的方法是向表单中添加一个显式ID,如下所示:

form_for@model,html:{id:'your form id'}do | f |


并像
var formAction=document.getElementById('your-form-id').action那样访问它

被你的问题弄糊涂了。您不需要javascript来获取操作。运行耙路线,你可以从那里得到它。被你的要求弄糊涂了。您不需要javascript来获取操作。运行rake routes,您可以从那里获得它。感谢您的回复!第一行代码帮我做到了!谢谢你的回复!第一行代码帮我做到了!谢谢你的回复!了解如何以这种方式遍历元素非常有用。感谢您的回复!了解如何以这种方式遍历元素非常有用。