Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在rails表单中调用javascript函数?_Javascript_Ruby On Rails - Fatal编程技术网

如何在rails表单中调用javascript函数?

如何在rails表单中调用javascript函数?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有一个rails表单,如下所示: = form_for :location, :url=>'/welcome' do |f| = f.text_field '', placeholder: 'Enter your zip code', id:'input_id' = f.button "Continue", class: 'button-test' 因此,当单击“继续”按钮时,rails获取控制器并执行方法/welcome 因此,我尝试执行一个简单的javascript函数,如

我有一个rails表单,如下所示:

= form_for :location, :url=>'/welcome' do |f|
  = f.text_field '', placeholder: 'Enter your zip code', id:'input_id'
  = f.button "Continue", class: 'button-test'
因此,当单击“继续”按钮时,rails获取控制器并执行方法
/welcome

因此,我尝试执行一个简单的javascript函数,如:

function wawa() {
 alert('it works')
};
单击“继续”按钮而不是rails执行方法时
/welcome


如何仅使用Javascript而不使用库来解决此问题?

在提交表单之前,您需要添加一些Javascript。若你们只想点击,那个么看看,也看看,因为它将帮助你们防止按钮的默认行为

试试这个代码

<%=  form_for :location, :url=>'/welcome' do |f| %>
  <%=  f.text_field '', placeholder: 'Enter your zip code', id:'input_id' %>
  <%=  f.button "Continue", class: 'button-test', id: 'demo' %>
 <% end %>

<script type="text/javascript">
    document.getElementById("demo").addEventListener("click", function(event){
        event.preventDefault()
        alert('Hello')
    });
</script>
“/welcome”do | f |%>
document.getElementById(“演示”).addEventListener(“单击”),函数(事件){
event.preventDefault()
警报(“你好”)
});
您可以使用
jquery的
submit()
功能

= form_for :location, :url=>'/welcome', html: {id: "id_form_location"} do |f|
 = f.text_field '', placeholder: 'Enter your zip code', id:'input_id'
 = f.button "Continue", class: 'button-test'
在javascript文件中:

$("#id_form_location").submit(function(event) {
  alert('it works');
});

您需要向submit元素添加一个JavaScript侦听器,该元素将调用preventDefault()。这将使您有机会在提交表单之前修改DOM。好的,那么我该如何实现呢?我是rails的新手,这是我第一个严肃的项目。你在使用jquery吗?好的,我建议你看看它,在提交时实现验证。只需将jquery的代码替换为回答中提到的javascript即可。