簡體   English   中英

禁用印地文字符作為輸入類型編號的輸入

[英]disable hindi characters as input for input type number

我有一個數字類型的文本框。 我已禁用通過javascript輸入文本。 但是文本框接受印地文字符串和數字。 當用戶輸入印地文編號作為輸入時,它會在頁面后面的代碼中轉換為英語。 但是印地文字符造成了問題,我應該防止印地文輸入字符。

<input type="number" id="txtWard" onkeypress="return numberOnly(event)" required="required" runat="server" min="0" max="8" />

JavaScript代碼

function numberOnly(evt) {
    var charCode = (evt.which) ? evt.which : window.event.keyCode;

    if (charCode <= 13) {
        return true;
    }
    else {
        var keyChar = String.fromCharCode(charCode);
        var re = /[0-9]/
        return re.test(keyChar);
    }
}

印度文文字“हिन्हि”和數字“ १ २ ३”的示例。 該文本框不應接受印地文文本。 我如何也可以禁用印地文字符串?

我認為您的問題與特定字符無關。 您的問題是僅在手動輸入字符時才運行驗證,而不是例如從剪貼板粘貼字符時則不運行驗證。 如果使用ASP.NET,則除了當前的JS驗證外,還可以使用內置驗證,請參見以下示例: https : //stackoverflow.com/a/1427777/5098386

編輯:或者如果您想將其保留在JS上,只需使用onchange事件而不是onkeypress

因此,我使用了Google輸入工具來測試印地語字符,並且對我來說做得很好,如果您只允許使用數字,則可以使用/\\D/只允許使用數字,這樣就無需檢測鍵號,請嘗試以下代碼:

 function numberOnly(e) { if (/\\D/g.test(e.value)) { e.value = e.value.replace(/\\D/g, ''); } } 
 <input type="number" id="txtWard" onkeypress="return numberOnly(this)" required="required" runat="server" min="0" max="8" /> 

暫無
暫無

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

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