日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

html注释绕过,关于javascript:提交时绕过HTML的“ required”属性

發(fā)布時間:2025/3/12 javascript 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html注释绕过,关于javascript:提交时绕过HTML的“ required”属性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本問題已經有最佳答案,請猛點這里訪問。

提交表單之前,我將required用于第一次檢查。

Foo:

問題是,我有一個"忽略"按鈕,它也提交表單,然后后端邏輯在數(shù)據(jù)庫中設置正確的狀態(tài)。 在這種情況下(忽略),不需要驗證(因為不需要填寫字段" Foo")。

處理這兩種情況的最佳方法是什么?

我知道我可以放棄"必需"而在其他地方(后端/ JavaScript)進行驗證。 我正在尋找一種保持"必需"的方法。

我可以在忽略按鈕方案中使用一些Js onclick并在發(fā)送表單之前刪除屬性(https://stackoverflow.com/a/13951500/356726)。

但是實際上我正在尋找更智能的東西。

-編輯-

是的,必填屬性HTML5的重復項

#2可能是最好的選擇。 如果使用忽略提交而不是提交提交,則驗證服務器端完全或完全不使用必需屬性,而是繞過驗證。

#2對我也很有意義。

是的,我錯過了以上

無需JavaScript,不需要第二種形式,驗證可以保留:

正是在這種用例中,HTML5規(guī)范為提交元素(如)設計了formnovalidate屬性,作為表單提交的屬性之一:

The formnovalidate attribute can be used to make submit buttons that do not trigger the constraint validation.

所以簡單地說

Foo:

您的#2是常見的方法。就像是:

$('input[value="ignore"]').click(function() {

$(this).siblings('input[type="text"]').removeAttr('required');

});

可能必須使用mousedown擊敗提交。

如果要使用JavaScript,則最好執(zhí)行.prop("required", false)

您應該基于以下理由使用方法#1:使用required代替JavaScript驗證的主要原因是它更簡單并且即使禁用了JavaScript也可以使用。這里的簡單性不適用,因為使用required使事情變得更加困難。后一個原因也不適用:禁用JavaScript且瀏覽器支持required時,除非在文本字段中輸入了一些數(shù)據(jù),否則"忽略"按鈕將不起作用。

另一種替代方法是@MattKenefick的答案中提到的替代方法。它甚至可能導致更簡單的結構和邏輯。如果表單確實像示例中一樣簡單,則將其拆分為兩種形式很簡單:

Foo:

這并不意味著"在所有情況下都需要該字段"。 它確實意味著"驗證表單時必填字段"-可能不是,請參閱我的答案。

@Bergi,對,我已刪除了該段。

如果您不想使用Javascript,則可以使它們成為單獨的形式,并為ignore形式將所有輸入設置為隱藏。

不是最好的選擇,但這是一個替代選擇。

總結

以上是生活随笔為你收集整理的html注释绕过,关于javascript:提交时绕过HTML的“ required”属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。