easyui-numberbox限定僅輸入數字


許多必填項都涉及到數字,比如電話號碼,身份證號這些要求用戶在輸入時只能輸入數字。Easyui提供了數字框控件,允許用戶只輸入數字,

<td>
<input id="ssd" type="text" class="easyui-numberbox" data-options="precision:'2'"
name="ssd" value="0" style="width:100px;"
onkeyup="noNum(this)" /> 

</td>

這是普通輸入框,采用easyui-numberbox控件,經過測試發現,在輸入法為英文輸入法時,的確只能輸入數字,但是在中文輸入法下,鍵盤上的任何字符都可以隨便輸入。這顯然不符合用戶需求。雖然html提供了一個限制輸入法的方法,style="ime-mode:disabled ",但是只支持IE,其他瀏覽器都不支持該方法。

方案:

既然控件無法解決,只能另外寫方法。最簡單的方法就是用正則表達式,將不是數字的字符剔除,以下js來源於百度,非原創。請支持原創作者。

/******只允許輸入數字和小數點*****/
function noNum(obj)
{
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“數字”和“.”以外的字符
obj.value = obj.value.replace(/^\./g,""); //驗證第一個字符是數字而不是.
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一個. 清除多余的.
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//保證.只出現一次,而不能出現兩次以上
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM