2017-06-21 75 views
0

我無法在提交表單的按鈕上添加事件,並且在提交後停止頁面重定向。我發現其他答案,我嘗試添加return false和preventDefault,但都沒有工作。.submit和return false在我的表單上不起作用

爲什麼這不起作用?

function submitform() { 
     document.getElementById("form").submit(function() { 
      return false; 
     }); 
    } 

我加入了點擊事件按鈕

<button id="button" onclick="submitform();">Submit Form</button 

Here is an example顯示的JavaScript不工作。

+0

您需要將事件傳遞給處理程序和'preventDefault()',否則它將執行表單提交,而不是異步。 –

+0

@SterlingArcher抱歉,如果我不遵循,但我需要添加preventDefault到提交功能? – cgrouge

回答

-1

你可以使用ajax來處理表單提交而不用重定向頁面。您將需要使用jquery此解決方案:

$(function() { 
    $('form').submit(function() { 
     $.ajax({ 
      type: 'POST', 
      url: 'submit.php', 
      data: { EMAIL: $(this).name.value } 
     }); 
     return false; 
    }); 
}) 

令人難以置信的類似問題/答案在這裏:Prevent redirect after form is submitted

+0

如果可能,我寧願在我的解決方案中使用純javascript,我相信可以完成 – cgrouge

0

時,有沒有進一步的事件要調用提交的功能,然後在表格聽。基本上你正在聆聽一個永遠不會發生的事件。

在按鈕上發生事件時,無需在提供的提琴上調用提交功能。

我爲電子郵件地址添加了一個快速空測試來顯示過程。

修正筆:https://codepen.io/anon/pen/dRRbyw

HTML

<button id="button" onclick="submitform();">Submit Form</button> 
<br /><br /> 
<form id="form" method="post" action="https://submit.jotform.us/submit/71714528616156/"> 
    Email 
    <input type="text" name="EMAIL" id="EMAIL" label="Email" value=""> 

JS

function submitform() { 
    if(document.getElementById("EMAIL").value == "") {  
      alert('nope'); 
      return false; 
     } else { 
    alert('yep'); 
    document.getElementById("form").submit(); 
    } 
} 

讓我知道如果你需要任何更多的解釋。

+0

我不確定我是否理解你的答案。我的按鈕位於表單之外,因此當我單擊該按鈕時,腳本將提交表單。我希望表單提交,但不能重定向到謝謝頁面。您的答案不提供該解決方案 – cgrouge

+0

表單所指向的位置取決於您的操作值。上述表格正在提交。那是什麼document.getElementById(「form」)。submit();是在做。 – PhilipAbbott

+0

對,您的答案中的表單提交正在工作,但我不想要頁面重定向。所以,我希望數據在動作URL中提交,但我不希望感謝頁面在完成時顯示 – cgrouge

相關問題