输入类型=数字不允许在Android上使用Phonegap使用小数

输入类型=数字不允许在Android上使用Phonegap使用小数,android,cordova,input,Android,Cordova,Input,在做了大量的谷歌搜索后,我发现很多人都有我遇到的相同问题,但没有解决方案。我正在使用Phonegap构建一个Android应用程序。我有一个输入字段,其类型设置为number(这允许弹出数字键盘)。如果我进入0.1,生活是美好的。如果在输入框中键入.1,则返回一个空白字段。我尝试了这段代码,它可以在web版本上运行,但无法在应用程序上尝试解决问题: $('#merchantInput input[type=number]').on('blur',function(){ var i

在做了大量的谷歌搜索后,我发现很多人都有我遇到的相同问题,但没有解决方案。我正在使用Phonegap构建一个Android应用程序。我有一个输入字段,其类型设置为number(这允许弹出数字键盘)。如果我进入0.1,生活是美好的。如果在输入框中键入.1,则返回一个空白字段。我尝试了这段代码,它可以在web版本上运行,但无法在应用程序上尝试解决问题:

    $('#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只编译为数字,因此输入字段不会将句点识别为第一个字符。