如何避免表單提交?
P粉545218185
P粉545218185 2023-08-21 13:38:16
0
2
513
<p>我有一個表單,在其中的某個地方有一個提交按鈕。 </p> <p>然而,我想以某種方式「捕捉」提交事件並阻止其發生。 </p> <p>有沒有辦法可以做到這一點? </p> <p>我無法修改提交按鈕,因為它是自訂控制項的一部分。 </p>
P粉545218185
P粉545218185

全部回覆(2)
P粉463418483

您可以像這樣使用內聯事件onsubmit

#
<form onsubmit="alert('停止提交'); return false;">

<script>
   function toSubmit(){
      alert('我不会提交');
      return false;
   }
</script>

<form onsubmit="return toSubmit();">

範例

現在,在開發大型專案時,這可能不是一個好主意。您可能需要使用事件監聽器。

在這裡閱讀更多關於內聯事件 vs 事件監聽器(addEventListener和IE的attachEvent)的更多資訊。因為我無法比Chris Baker解釋得更好。

P粉399585024

與其他答案不同,返回false只是答案的部分。考慮在回傳語句之前發生JS錯誤的情況...

html

<form onsubmit="return mySubmitFunction(event)">
  ...
</form>

script

function mySubmitFunction()
{
  someBug()
  return false;
}

在這裡返回false不會被執行,表單將以任何方式提交。您還應該呼叫preventDefault來阻止Ajax表單提交的預設操作。

function mySubmitFunction(e) {
  e.preventDefault();
  someBug();
  return false;
}

在這種情況下,即使有錯誤,表單也不會被提交!

或者,可以使用try...catch區塊。

function mySubmit(e) { 
  e.preventDefault(); 
  try {
   someBug();
  } catch (e) {
   throw new Error(e.message);
  }
  return false;
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板