正在使用带有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。 我认为这是一个小问题...... :( 但是没有得到解决方案..请帮助我!
答案 0 :(得分:2)
修正了您的问题
问题在于您没有使用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;
}
}
答案 1 :(得分: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());
}
}
});}
答案 2 :(得分:0)
我发现只有这个能起作用
$(".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。]作为正则表达式
答案 3 :(得分:-1)