[英]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.] 作為正則表達式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.