成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

input文本框強(qiáng)制輸入指定文字的方法以及IE11的兼容

CKJOKER / 3553人閱讀

摘要:背景最近開(kāi)發(fā)的韓國(guó)項(xiàng)目,在用戶姓名輸入框一欄中,要求只能輸入韓文,通常用到和兩個(gè)事件來(lái)觸發(fā)方法,并在方法中進(jìn)行校驗(yàn),但是在瀏覽器中,出現(xiàn)了一種情況,就是韓文單詞拼寫未完成的時(shí)候,會(huì)直接進(jìn)行校驗(yàn)并顯示,如下圖實(shí)例所展示,并不是需要想要的結(jié)果,

背景:最近開(kāi)發(fā)的韓國(guó)項(xiàng)目,在用戶姓名輸入框一欄中,要求只能輸入韓文,通常用到onkeyup和onafterpaste兩個(gè)事件來(lái)觸發(fā)方法,并在方法中進(jìn)行校驗(yàn),但是在IE瀏覽器中,出現(xiàn)了一種情況,就是韓文單詞拼寫未完成的時(shí)候,會(huì)直接進(jìn)行校驗(yàn)并顯示,如下圖實(shí)例所展示,并不是需要想要的結(jié)果,所以需要進(jìn)行IE兼容;

記錄一下整個(gè)流程:

標(biāo)簽綁定事件

標(biāo)簽綁定了onkeyup鍵盤抬起事件以及onafterpaste粘貼文本進(jìn)輸入框兩個(gè)事件,當(dāng)有這兩個(gè)操作時(shí),就會(huì)觸發(fā)相應(yīng)的校驗(yàn)方法;

校驗(yàn)方法
keyup (ev) {
  if (!this.imeStatus) {
    ev.target.value = ev.target.value.replace(/[^?-??-??-?A-Za-z0-9]/g, "")
  }
},

當(dāng)事件觸發(fā)時(shí),首先會(huì)有個(gè)變量imeStatus校驗(yàn)是否是IE瀏覽器,然后再根據(jù)正則校驗(yàn)進(jìn)行輸入框值的替換,注意:替換的應(yīng)該是當(dāng)前正在輸入的值,并非整個(gè)輸入框包括已經(jīng)輸入的所有值;

if (getBrowser() === "IE") {
      window.addEventListener("compositionstart", () => {
        this.imeStatus = true
      }, false)
      window.addEventListener("compositionend", () => {
        this.imeStatus = false
      }, false)
    }

IE瀏覽器的校驗(yàn):如果是IE瀏覽器,則對(duì)輸入法事件進(jìn)行監(jiān)聽(tīng),在輸入法錄入開(kāi)始時(shí),變量imeStatus為true,當(dāng)前輸入的值不進(jìn)行校驗(yàn),當(dāng)輸入法輸入結(jié)束事件觸發(fā)時(shí),說(shuō)明拼寫完成,變量imeStatus為false,進(jìn)行校驗(yàn)當(dāng)前拼寫輸入完成的單詞;

function getBrowser () {
  const userAgent = navigator.userAgent
  if (userAgent.indexOf("OPR") > -1) {
    return "Opera"
  }
  if (userAgent.indexOf("Firefox") > -1) {
    return "FF"
  }
  if (userAgent.indexOf("Trident") > -1) {
    return "IE"
  }
  if (userAgent.indexOf("Edge") > -1) {
    return "Edge"
  }
  if (userAgent.indexOf("Chrome") > -1) {
    return "Chrome"
  }
  if (userAgent.indexOf("Safari") > -1) {
    return "Safari"
  }
}

對(duì)瀏覽器的判斷:navigator.userAgent獲取當(dāng)前瀏覽器信息;

以上就是我在項(xiàng)目開(kāi)發(fā)過(guò)程中遇到的需要兼容IE的地方;文中提到的是韓文校驗(yàn),也可以替換成其他語(yǔ)言,根據(jù)自己項(xiàng)目中的具體需求進(jìn)行修改即可;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/102436.html

相關(guān)文章

  • [總結(jié)]CSS/CSS3常用樣式與web移動(dòng)端資源

    摘要:不允許負(fù)值用百分比來(lái)定義縮放比例。解決這個(gè)很簡(jiǎn)單,在父元素中使用即可解決該。列寬度由單元格內(nèi)容設(shè)定。定義僅有大寫字母。不過(guò),要讓任何元素生效還得借助于一點(diǎn)點(diǎn)。 css/css3常用樣式 CSS修改選中文字的顏色 html代碼: 第一段文字選中效果 第二段文字選中效果 css代碼: .p1::selection{background:red;color:#fff;} .p2::selec...

    The question 評(píng)論0 收藏0
  • 【譯】原生表單組件

    摘要:文本輸入框文本輸入框是最基本的表單組件,它便于用戶輸入各種數(shù)據(jù)。對(duì)大多數(shù)表單組件而言,表單提交后所有具有屬性的組件都會(huì)被提交,即使它們沒(méi)有獲值。重置按鈕用于重置所有表單組件為默認(rèn)值。 系列文章說(shuō)明 原文 HTML表單是由組件構(gòu)成的,這些組件是各種瀏覽器都支持的內(nèi)置控件。本文中我們將深入探討它們、了解它們的作用、學(xué)習(xí)如何讓各種瀏覽器更好地支持它們。 雖然這里我們只探討內(nèi)建表單組件,但...

    sunnyxd 評(píng)論0 收藏0
  • WEB前端面試題整理(一)

    摘要:響應(yīng)禁止包含消息體,因此始終以消息頭后的第一個(gè)空行結(jié)尾。刪除并返回?cái)?shù)組的最后一個(gè)元素。返回該對(duì)象的源代碼。優(yōu)雅降級(jí)一開(kāi)始就構(gòu)建完整的功能,然后再針對(duì)低版本瀏覽器進(jìn)行兼容。 WEB前端面試題的記錄(一) 1、獲取非行間樣式的函數(shù): function getStyle(obj, attr){ if (obj.currentStyle) { return obj.current...

    hoohack 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

CKJOKER

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<