簡體   English   中英

如何防止 document.forms[0].submit() 提交表單?

[英]How to prevent document.forms[0].submit() from submitting a form?

這基本上是我的形式:

<form method="post" action="" onsubmit="checkallfields(); event.preventDefault();">
  <!-- My Stuff -->
</form>

它是我頁面上的第一個表單。 我有客戶端字段驗證,這顯然存儲在函數checkallfields() 但問題是,用戶可能非常頑皮,打開控制台並輸入document.forms[0].submit() ,然后表單仍然會提交。

我如何防止這種情況?

你無法阻止它。 這就是為什么您需要進行服務器端驗證,這就是為什么您應該始終進行服務器端驗證。 客戶端不可信,我什至不需要您的網頁提交到您的服務器。

我思考了這個問題,並得到了自己的答案。 在谷歌瀏覽器中進行了測試。

var i = document.forms.length;
while (i--) {
  document.forms[i].submit = function () {
    return false;
  }
}

對你們有用嗎? 你可以在這里查看: http : //jsfiddle.net/think123/ZRuYw/

只需將文檔上的該功能設置為 false。

document.forms[0].submit = function () {
  return false;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM