Javascript 如何在不提交表单的情况下使用ruby访问表单元素值?

Javascript 如何在不提交表单的情况下使用ruby访问表单元素值?,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,好的,我现在有一个广泛的ruby应用程序运行在RubyonRails后面。此应用程序需要表单输入,但我不想在更新文本框时刷新页面。我的意思是: 我有一个表单,它有两个文本框,一个称为“starttime”,另一个称为“endtime”。我需要在按下按钮时将这些文本框的值(用户输入的内容)输入ruby。除了ruby之外,还有其他类似javascript的document.form.starttime.value命令吗?或者是否有某种方法可以提交表单数据、检索表单数据,但不刷新页面(如使用ajax)

好的,我现在有一个广泛的ruby应用程序运行在RubyonRails后面。此应用程序需要表单输入,但我不想在更新文本框时刷新页面。我的意思是:


我有一个表单,它有两个文本框,一个称为“starttime”,另一个称为“endtime”。我需要在按下按钮时将这些文本框的值(用户输入的内容)输入ruby。除了ruby之外,还有其他类似javascript的document.form.starttime.value命令吗?或者是否有某种方法可以提交表单数据、检索表单数据,但不刷新页面(如使用ajax)?我知道ajax用于动态操作DOM而不刷新页面,但我确实需要检索数据。非常感谢您的帮助,我在任何地方都找不到。

您可以很容易地使用。给开始时间和结束时间表单元素一个不同的ID(我使用下面的
startDate
endDate
),您可以轻松地检索它们,然后将数据发送给Rails操作,该操作可以在后台处理它们,如果需要,在单击按钮时使用任何相关数据更新DOM(下面假定一个ID为
SendDateValues
的输入按钮)

类似这样的内容:(未经测试)



//感谢您的快速响应。如果我使用这样的功能,它不会将浏览器移动到另一个页面吗?我需要在检查文本框的值后保持在同一页面并操作另一个对象。这就是AJAX调用的美妙之处——它会在后台发出请求。用户可能会在其状态栏中看到活动,但没有除非您(在success函数的某个地方)明确更改,否则ing将在其所在的页面上更改。如果您以前没有使用过jQuery,请注意,您需要包含jQuery库才能实现上述功能。理论上,您可以使用普通Javascript编写AJAX调用,但jQuery库将其完美地抽象出来并使其变得简单。好的,我在布局中添加了:当然,我需要修改您发布的代码,但在这段代码行吗?哦,我想我不需要Jrail,这只是我在网上找到的东西。好的,有没有办法使用会话变量来实现这一点?
<script type="text/javascript">
//<![CDATA[

$("#SendDateValues").click(function() {
  $.ajax({
    url: '/SomeController/ProcessDateData/",
    data: 'startDate=' + $("#startdate").val() + "&endDate=" + $("#endDate").val(),
    success: function(html) { //DO SOMETHING WITH THE RESULT },
    type: 'post'
  });
});

//]]>$
</script>