如何在rails表单中调用javascript函数?
我有一个rails表单,如下所示:如何在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函数,如
= 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即可。