亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何防止表單提交?

如何防止表單提交?

MMTTMM 2019-06-06 14:37:02
如何防止表單提交?我有一個表格,里面有個提交按鈕。然而,我想以某種方式“捕捉”提交事件并防止其發生。有什么辦法我能做到嗎?我無法修改Submit按鈕,因為它是自定義控件的一部分。
查看完整描述

3 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

不像其他答案,返回false只是部分答案??紤]在返回語句之前發生JS錯誤的情況.

HTML

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

劇本

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;}


查看完整回答
反對 回復 2019-06-06
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

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

<form onsubmit="alert('stop submit'); return false;" >

<script>
   function toSubmit(){
      alert('I will not submit');
      return false;
   }</script><form onsubmit="return toSubmit();" >

演示

現在,在做大型項目時,這可能不是個好主意。您可能需要使用事件偵聽器。

閱讀更多關于內聯事件與事件偵聽器(addEventListener和IE的attachEvent)這里..因為我無法解釋克里斯·貝克做。

這兩種方法都是正確的,但它們中沒有一種本身是“最佳”的,開發人員選擇使用這兩種方法可能是有原因的。


查看完整回答
反對 回復 2019-06-06
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

將事件偵聽器附加到窗體.addEventListener()然后調用.preventDefault()方法上event:

const element = document.querySelector('form');

element.addEventListener('submit', event => {

  event.preventDefault();

  // actual logic, e.g. validate the form

  console.log('Form submission cancelled.');

});

<form>

  <button type="submit">Submit</button>

</form>

我認為這比定義一個submit事件處理程序與onsubmit屬性,因為它將網頁邏輯和結構分離。維護邏輯與HTML分離的項目要容易得多。見:低調的JavaScript.

使用.onsubmit的屬性formDOM對象不是一個好主意,因為它阻止您將多個提交回調附加到一個元素??匆?/trans>addEventListener與onClick.


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 435 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號