输入类型=数字不允许在Android上使用Phonegap使用小数
在做了大量的谷歌搜索后,我发现很多人都有我遇到的相同问题,但没有解决方案。我正在使用Phonegap构建一个Android应用程序。我有一个输入字段,其类型设置为number(这允许弹出数字键盘)。如果我进入0.1,生活是美好的。如果在输入框中键入.1,则返回一个空白字段。我尝试了这段代码,它可以在web版本上运行,但无法在应用程序上尝试解决问题:输入类型=数字不允许在Android上使用Phonegap使用小数,android,cordova,input,Android,Cordova,Input,在做了大量的谷歌搜索后,我发现很多人都有我遇到的相同问题,但没有解决方案。我正在使用Phonegap构建一个Android应用程序。我有一个输入字段,其类型设置为number(这允许弹出数字键盘)。如果我进入0.1,生活是美好的。如果在输入框中键入.1,则返回一个空白字段。我尝试了这段代码,它可以在web版本上运行,但无法在应用程序上尝试解决问题: $('#merchantInput input[type=number]').on('blur',function(){ var i
$('#merchantInput input[type=number]').on('blur',function(){
var input_regex = new RegExp(/^\.{1}\d+/);
var test = input_regex.exec($(this).val());
if(test != null){
new_num = '0' + $(this).val();
parseFloat($(this).val(new_num)).toFixed(2);
}
});
还是没什么。你知道如何解决这个问题吗
我也试过这个:
$('#merchantInput input[type=number]').on('blur',function(){
var new_num = parseFloat(($(this).val() * 10) / 10).toFixed(2);
$(this).val(new_num);
});
我更接近……当你输入.3时,我得到0.00。检查“.”值的变化,并立即替换为“0”怎么样?这样,如果有人试图输入“.1”,它将自动更改为“0.1” 您可以尝试为“keyup”使用eventHandler,它比blur更直接:
$('#merchantInput input[type=number]').on('keyup', function() {
if($(this).val() == '.') {
$(this).val('0.');
}
};
我也遇到了同样的问题,在谷歌上搜索了一下(在许多搜索中看到了这篇文章的顶部,因此也为其他人发帖)后,我找到了这个答案: 基本上,您可以使用step属性来定义如何允许数字递增:
这将允许小数点到小数点后3位。这是什么版本的Cordova/phonegap?编辑我的答案以使用键控显示,这比不起作用更直接。不过我很感激。我认为问题在于Phonegap是如何编译的。如果我记得正确的话,本机Java有一个数字和十进制输入类型。我认为Phonegap只编译为数字,因此输入字段不会将句点识别为第一个字符。