爲什麼input中的maxlength屬性失效了

今天在遇到限制某個輸入框的最大長度的需求,比如一個要求輸入手機號的輸入框:當時我是這樣寫的

<input type="text" placeholder="請輸入手機號碼" maxlength="11" />

如果是上面的這種寫法的話,maxlength屬性是有效的。但是type=”text”有一個不好的體驗,就是獲取焦點後彈出的輸入法是默認拼音的那種,不太適合此處要求純數字的需求。那麼自然會想到改爲type=”number”,改爲後你會奔潰, 竟然發現maxlength屬性不起作用了,可以無限地輸入,明明number是限制數字,爲什麼長度會失效呢,刨根問底。

經過查閱相關資料,最終總結出以下內容:

在html5中的新增的type類型包含:color, date, datetime, datetime-local, month, week, time, email, number, range, search, tel 以及 url。 發現number類型不行後,後面去試了下tel類型,發現maxlength屬性又變有效了,不過這樣並不是很好。

 

最終我得到的解決方法如下:

<input type="number" placeholder="請輸入手機號碼" oninput="if(value.length>11)value=value.slice(0,11)" />

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章