簡體   English   中英

防止移動設備中輸入類型編號的“DOT”

[英]Prevent "DOT" for Input type number in Mobile Devices

我正在使用帶有 PhoneGap 的 jQueryMobile .. 目前我有一個問題.. 我搜索了它,但沒有得到確切的答復。 我的問題是我想防止在文本框中輸入 DOT。 文本框用於輸入 AGE。

<input type="number" class="form_textbox_half" data-role="none" id="age" pattern="[0-9]*">

以及它的按鍵事件;

$('#age').live('keypress', function(){preventDot(event)});

那么它的函數是

function preventDot(event) {
    alert(0);
    //var test = document.getElementById("#age");
    var key = event.charCode ? event.charCode : event.keyCode;
    $("#age").innerHTML = key;
    if (key == 46) {
        return false;
    }
}

但它不起作用.. 我想防止在文本框中輸入 DOT。 我認為這是一個小問題.. :( 但沒有得到解決方案.. 請幫助我!

修復了您的問題

小提琴

問題是您沒有使用preventDefault來停止keypress事件的傳播

這是修改后的方法的外觀:

function preventDot(event)
{
    alert(event.charCode)
    //var test = document.getElementById("#age");
    var key = event.charCode ? event.charCode : event.keyCode;  
    $("#age").innerHTML = key;
    if (key == 46)
    {
        event.preventDefault();
        return false;
    }    
}

你可以試試我用這個解決的代碼

function bindOnInputQuantity() {    
    $('.receiveQty').blur('input', function() {
    var sel = $(this);
    var selDel = $(this).next();
    if(sel.val() === '') {
        sel.val(0);
        sel.data('current', 0);
    } else {
        if(parseInt(sel.val()) > parseInt(selDel.val())) {
            alert('Receive Quantity Cannot More Then Delivery Quantity!');
            sel.val(sel.data('current'));
            sel.focus();
            return false;
        } else {
            sel.val(parseInt(sel.val()));
            sel.data('current', sel.val());
        }            
      }        
   });}                                                                            

我發現只有這個有效

$(".vinput").on("input change paste",
function filterNumericAndDecimal(event) {
    var formControl;
    formControl = $(event.target);
    var newtext = formControl.val().replace(/[^0-9]+/g, "");
    formControl.val(''); //without this the DOT wont go away on my phone!
    formControl.val(newtext);
});

但如果您需要包含點,請使用 [^0-9.] 作為正則表達式

像這樣使用

$('#age').live('keypress', function(event){preventDot(event)});

看演示

暫無
暫無

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

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