婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5數字輸入僅接受整數的實現代碼

HTML5數字輸入僅接受整數的實現代碼

熱門標簽:威海語音外呼系統平臺 中國地圖標注城市的 地圖標注員工作內容 智能語音電銷機器人客戶端 西安金倫外呼系統 高德地圖標注廁所 地圖標注沿海城市房價 通遼地圖標注app 江西ai電銷機器人如何

這兩年我看到很多關于這方面的文章和帖子,這的確是一個非常方便的東西。但是,太多的實現還是有漏洞,殘缺不全的實現,等等。

整體概念是合理的:使用 HTML 5 屬性來限制可以發送到服務器的內容,然后使用 Javascript 增強它,以限制用戶可以在第一個地方輸入的內容。

所以讓我們來看看這些問題,并更好地實現它。

問題 1,不好的腳本

最常見的缺陷是缺乏適當的降級功能。 如果您要在“electron”或“nw.js”中構建完整的堆棧應用程序,那很好,但是這種形式的東西通常在面向公眾的網站中沒有位置。

就像我經常說的那樣,高質量的腳本應該增強已經在工作的頁面,而不是用戶使用它的唯一方法。

解決辦法?

使用 pattern 和 step 屬性來限制有效內容。

問題 2,正則表達式模式錯誤或不完整

人們最常用的模式是 [-/ d] * ,它的問題是允許在任何地方都減號。 雖然肯定可以使用 type = “number” 來解決問題,但這不是一個好選擇。 截取按鍵時更是如此,因為減號只能是第一個字符。

它還可能出現問題,因為某些實現“不是”正則表達式,這會導致誤報。

解決辦法?

對于 HTML,使用更好的表達式: ^[- d]\d*$ 更加健壯和準確。減號可以是匹配開始的第一個字符,然后是零個或多個小數,直到字符串結束。

對于 JavaScript,只使用正則表達式來測試數字,并應用一些更實用的邏輯來檢測其他值。

簡單易行!

問題 3,在標記中使用事件屬性

我知道在 JSX 垃圾中,有大量的用嘴呼吸的人在鼓勵這一點,但如果你在寫 vanilla 或其他系統,請出于對圣誕節的愛,從 1997 年的直腸中取出你的頭顱。

將 “onkeypress” 或 “onchange” 放在標記中意味著錯失了一次緩存機會,也違反了分離關注的原則。以這種方式將 JavaScript 放進標記中,就像在 HTML 4 Strict 中被廢棄的所有東西一樣,愚蠢得令人發指。就像如果你要用 “text-white box-shadow col-4-s” 這樣的屬性在你的 HTML 上撒尿一樣,請你承認失敗,然后回到寫 HTML 3.2 的時候,用所有那些 FONT / CENTER 標簽、COLOR、BGCOLOR、SIZE、BORDER 和 ALIGN 屬性,以及 “用于布局的表格 “來寫,你們似乎都很清楚地、很珍視地錯過了。

這也意味著您沒有完整/適當的事件處理程序訪問權限。

解決辦法?

Element.addEventListener ,請使用它!

問題 4,必須對每個輸入進行硬編碼

無論是通過問題 3 將事件屬性放到標記中,還是通過手動獲取唯一 ID 來捕獲它們,我幾乎沒有發現可以實際使用即插即用的標記應用程序的代碼庫!

解決辦法?

document.querySelectorAll('input[type="number”][step="1"]') 給我們提供所有我們想要的整數輸入,所以我們可以增強它。

問題 5,一些腳本阻止使用導航控制和正常編輯!

通過攔截并只允許減號和 0…9,它們可以防止退格鍵、回車鍵、制表鍵、箭頭、刪除、插入等等等等。并不是所有的瀏覽器都會把這些作為 event.key 發送,這要看你鉤住的是什么事件。比如 “keypress” 事件在 Firefox 和 Chrome 中會過濾掉一些,以免破壞正常的表單使用,但 “老 Edge” 和 Safari 不會,“keydown” 則什么也不過濾。

解決辦法?

因為 “keypress” 事件跨瀏覽器不一致,所以用 keydown 代替。那么我們就可以利用所有控制鍵在 Event.key 值中返回多個字符的事實,我們只需要檢查 Event.key.length>1 就可以說 “繼續允許這些”。

正如前面所提到的,我們所需要的只是一個簡單的輸入,在不使用 JavaScript 的情況下,它首先具有盡可能多的功能!

HTML:

<input type="number" step="1" pattern="^[-/d]/d*$" />

只接受整數,如果你想只接受正數,可以換成 pattern="/d+”

JavaScript:

然后我們可以使用 JavaScript 來限制用戶的輸入,這樣人們甚至不允許輸入無效值。

(function() {
  var integers = document.querySelectorAll(
      'input[type="number"][step="1"]'
    ),
    intRx = /\d/;

  for (var input of integers) {
    input.addEventListener("keydown", integerChange, false);
  }

  function integerChange(event) {
    if (
      event.key.length > 1 ||
      (event.key === "-" &&
        event.currentTarget.value.length === 0) ||
      intRx.test(event.key)
    )
      return;
    event.preventDefault();
  }
})();

我們首先將其包裝在 IIFE 中以隔離范圍。 然后,抓取我們要在頁面上掛接的所有輸入,并創建我們的正則表達式。

我在事件開始處而不是在事件內部創建正則表達式,這樣我們就不用浪費時間在每個該死的按鍵上創建它。這就是匿名函數可能帶來開銷的地方,也是需要告訴那些“函數式程序員”和他們的“副作用”廢話的地方。

循環遍歷所有輸入,并為它們分配事件處理程序。

上述處理程序只是檢查我們的返回情況。像箭頭、退格鍵、回車鍵等控制鍵都會返回完整的文字來描述它們,所以如果 event.key 的長度>1,我們就不要阻止這些。

如果它是一個負號和第一個字符,通過 return 允許它。

如果它是一個數字,通過 return 允許它。

如果都不是,請阻止該事件。

Live Demo

這是一個代碼本,它包括幾個文本字段和多個整數和非整數的數字字段,所以你可以看到它確實只鉤住了我們想要的字段。

https://codepen.io/jason-knight/pen/QWGyrwq

懸而未決的問題

我可能會考慮添加的一件事是掛鉤“change”事件來攔截粘貼,但由于“pattern”屬性不允許提交無效的值,所以應該沒有問題。

結論

多想想用戶可能會輸入錯誤的東西,以及如何處理,但也要記住用戶可能輸入的所有其他東西,而這些東西與值本身沒有關系。

請始終注意,許多用戶會主動阻止腳本編寫,或者出于安全或可訪問性的原因讓腳本在 UA 中不可用。增強而不是取代你的基本功能!

計劃將這些東西應用到所有這些字段,而不是從一開始就只使用單個元素。

留意低效率,例如如何多次生成用作回調的匿名函數……或如何將腳本放入標記中會錯失跨頁面或重新訪問的緩存機會。

做了這些事情之后,實現這樣簡單的功能就不會再來困擾您或惹惱用戶了。

到此這篇關于HTML5數字輸入僅接受整數的實現代碼的文章就介紹到這了,更多相關HTML5數字輸入整數內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:阜陽 北海 河池 眉山 崇左 晉中 營口 青海

巨人網絡通訊聲明:本文標題《HTML5數字輸入僅接受整數的實現代碼》,本文關鍵詞  HTML5,數字,輸入,僅,接受,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5數字輸入僅接受整數的實現代碼》相關的同類信息!
  • 本頁收集關于HTML5數字輸入僅接受整數的實現代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    免费欧美日韩国产三级电影| 欧美午夜寂寞影院| 欧美一级欧美三级| 久久精品二区亚洲w码| 欧美激情一区二区三区蜜桃视频| 欧美综合色免费| 高潮精品一区videoshd| 日韩av不卡在线观看| 亚洲精品午夜久久久| 日韩色视频在线观看| 91国偷自产一区二区三区观看| 国产成人免费视频网站 | 日本在线不卡视频| 亚洲国产精华液网站w| 欧美一区二区在线不卡| 欧美亚一区二区| 色哟哟一区二区| a美女胸又www黄视频久久| 国产激情视频一区二区在线观看 | 欧美日韩亚洲综合一区| 91丨porny丨在线| 99久久99久久精品国产片果冻| 成人涩涩免费视频| 成人午夜激情在线| 本田岬高潮一区二区三区| 成人精品一区二区三区四区| 99国产精品久久久| 欧美亚洲国产一区在线观看网站| 一本到不卡免费一区二区| 日本久久电影网| 亚洲精品视频一区| 色哟哟一区二区在线观看| 国产1区2区3区精品美女| 成人黄色在线网站| 一区二区高清视频在线观看| 欧美人妇做爰xxxⅹ性高电影| 一本到不卡精品视频在线观看| 91丨porny丨首页| 久久久久久**毛片大全| 无码av免费一区二区三区试看 | 色天天综合久久久久综合片| 亚洲精品在线免费观看视频| 亚洲国产精品久久久久婷婷884| 成人高清视频在线| 国产农村妇女毛片精品久久麻豆 | 精品国产乱码久久久久久夜甘婷婷 | 亚洲少妇30p| 成人免费黄色在线| 久久精品一区二区三区四区| 美国一区二区三区在线播放| 制服视频三区第一页精品| 亚洲综合男人的天堂| 色妞www精品视频| 亚洲精品一二三四区| 一本大道久久精品懂色aⅴ| 亚洲免费在线观看| 99热国产精品| 综合电影一区二区三区| 在线免费视频一区二区| 午夜一区二区三区视频| 91精品国产色综合久久 | 欧美伦理电影网| 日韩电影免费在线看| 欧美大片一区二区三区| 国产露脸91国语对白| 久久精品欧美日韩| 成人动漫av在线| 亚洲欧美一区二区在线观看| 93久久精品日日躁夜夜躁欧美| 亚洲蜜臀av乱码久久精品| 欧美视频一区在线| 久久99精品久久只有精品| 国产网站一区二区| 一本色道久久综合亚洲精品按摩| 亚洲成人激情综合网| 欧美一级高清片| 国产精品99久久久久久宅男| 亚洲国产精品成人久久综合一区| 91麻豆国产福利在线观看| 日本在线不卡一区| 欧美激情自拍偷拍| 欧美亚洲愉拍一区二区| 国产精品久久久久7777按摩| 91色视频在线| 91麻豆精品国产91久久久使用方法 | 色94色欧美sute亚洲线路二| 亚洲欧美另类综合偷拍| 日本精品一级二级| 香港成人在线视频| 国产清纯美女被跳蛋高潮一区二区久久w| 国产91精品露脸国语对白| 一区二区三区在线免费| 日韩精品最新网址| 波多野结衣精品在线| 欧美aaa在线| 亚洲另类在线制服丝袜| 欧美第一区第二区| 91视频国产资源| 裸体健美xxxx欧美裸体表演| 国产成人精品三级麻豆| 亚洲精品乱码久久久久久 | 亚洲国产一区二区在线播放| 精品少妇一区二区三区在线视频| 99精品视频在线免费观看| 91麻豆产精品久久久久久 | 亚洲卡通动漫在线| av在线这里只有精品| 亚洲va天堂va国产va久| 国产欧美在线观看一区| 91麻豆精品国产91久久久资源速度| 成人一区二区三区在线观看 | 午夜欧美电影在线观看| 亚洲欧洲精品天堂一级| 久久伊人中文字幕| 91精品国产乱码久久蜜臀| 色综合久久综合网欧美综合网| 精品影院一区二区久久久| 午夜精品福利视频网站| 亚洲特黄一级片| 国产三级欧美三级| 国产一区二区视频在线| 亚洲成av人片在线观看无码| 中文字幕一区二区三区蜜月| 精品国产免费人成在线观看| 欧美老肥妇做.爰bbww视频| 亚洲人一二三区| 欧洲精品一区二区| 欧美一二三区精品| 国产一区二区按摩在线观看| 国产综合久久久久久鬼色| 一区二区三区蜜桃| 国产精品卡一卡二卡三| 久久久不卡网国产精品二区| 精品福利二区三区| 国产欧美1区2区3区| 国产精品一区二区黑丝| 中文字幕在线不卡一区| 7777精品伊人久久久大香线蕉的| 美女mm1313爽爽久久久蜜臀| 7777精品久久久大香线蕉| 国产一区二区久久| 日韩在线一区二区| 亚洲欧美aⅴ...| 欧美羞羞免费网站| 国产乱人伦偷精品视频不卡 | 久久99热狠狠色一区二区| 久久亚洲私人国产精品va媚药| 欧美国产1区2区| 91丨porny丨国产| 欧美精品一区二区久久久| 一区二区在线看| 久久久一区二区| 精品免费国产一区二区三区四区| 这里只有精品免费| 欧美va日韩va| 日本一区二区三区高清不卡| 中文字幕中文字幕中文字幕亚洲无线| 国产精品丝袜黑色高跟| 亚洲女同一区二区| 亚洲成人激情综合网| 日本vs亚洲vs韩国一区三区二区| 免费观看日韩电影| 激情欧美一区二区| 成人免费观看av| 欧美日韩一区二区在线观看| 91麻豆精品国产91久久久久| 26uuu欧美日本| 亚洲欧美一区二区三区国产精品 | 久久亚洲欧美国产精品乐播| 国产无遮挡一区二区三区毛片日本| 国产精品久久久久久久第一福利| 一区二区三区欧美视频| 热久久免费视频| 成人毛片视频在线观看| 88在线观看91蜜桃国自产| 国产天堂亚洲国产碰碰| 亚洲一本大道在线| 精品一二三四区| 91官网在线观看| 久久中文娱乐网| 亚洲国产另类av| 丁香啪啪综合成人亚洲小说| 欧美少妇一区二区| 国产欧美久久久精品影院| 视频一区二区欧美| 99久久99久久综合| 精品国产髙清在线看国产毛片| 国产精品乱码人人做人人爱| 日韩国产欧美在线观看| 99久久精品一区| 欧美va亚洲va香蕉在线| 亚洲一区二区三区爽爽爽爽爽| 国产一区二区精品久久| 91精品国产综合久久福利 | 国产精品每日更新| 亚洲一卡二卡三卡四卡无卡久久 | 欧美成人一区二区三区在线观看| 国产精品二区一区二区aⅴ污介绍| 亚洲国产人成综合网站| 成人毛片视频在线观看|