3

正在使用带有 PhoneGap 的 jQueryMobile。目前我有一个问题。我搜索它但没有得到确切的答复。我的问题是我想防止在文本框中输入 DOT。文本框用于输入 AGE。

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

及其 Keypress 事件;

$('#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。我认为这是一个小问题.. :( 但没有得到解决方案.. 请帮助我!

4

4 回答 4

2

修复了你的问题

小提琴

问题是您没有使用preventDefaultkeypress来阻止事件的传播

这是修改后的方法的外观:

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;
    }    
}
于 2013-06-14T09:19:50.793 回答
1

我发现只有这个工作

$(".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.] 作为正则表达式

于 2020-04-14T13:42:24.650 回答
0

你可以试试这个我用这个解决的代码

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());
        }            
      }        
   });}                                                                            
于 2019-08-20T07:13:49.227 回答
-1

像这样使用

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

看演示

于 2013-06-14T09:19:30.903 回答