簡體   English   中英

在iOS上動態限制數字輸入中的特殊字符

[英]Dynamically restrict special characters in number input on iOS

我見過很多與此類似的問題,但不是我要找的問題。如果我錯過了,很抱歉。

因此,我為在iOS UIWebView和移動Safari中運行的HTML應用程序提供了一系列數字輸入。 他們只需要接受數字,而不接受特殊字符或字母,並且必須驗證為最大值。

我目前正在使用e.which進行驗證,大多數情況下都可以使用它,但是當然,一堆標點符號字符(盡管iOS上的不同)報告的鍵碼與數字鍵相同,並且我在確定時遇到問題如果我不能允許他們輸入,或者將它們顯示在輸入字段中,然后將它們剝離。

(不正確的代碼和結構已刪除。)

<input type="number" id="input-patients" value="1600" max="10000" min="0" />
<input type="number" id="input-pct_dropout" value="16" max="100" min="0" />
<input type="number" id="input-annual_dollars" value="275" max="500" min="0" />

JavaScript的:

$('.input').on('keydown', function(e){

    var charCode = (e.which) ? e.which : event.keyCode;
    if (charCode > 47 && charCode < 59 || charCode == 8){
    // here a bunch of other stuff happens
       return true;
    }
    else{
       return false;
    }
});

我是否可以先檢查特殊字符而不先將它們顯示在輸入字段中,然后再將它們從字符串中刪除?

提前致謝。

所選輸入元素的onkeyup寫事件:從輸入框中獲取值,然后檢查是否為數字? (如果是,則isNAN(val)返回false並停止進一步處理),否則繼續執行下一個調用遞歸函數turnToInt的步驟,並使用該函數返回的有效INT設置此輸入框的值;

turnToInt函數:檢查有效數字(如果是,則返回該數字或從val中刪除最后一個字符,並對其進行調用以進行進一步驗證,最后返回有效的INT數字);

$(".select_object").keyup(function() {
      (val = $(this).val()) && isNaN(val) && $(this).val(turnToInt(val))
    });

function turnToInt(val) {
    return isNaN(val) ? turnToInt(val.substr(0,val.length-1)) : val;
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM