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

时间:2014-01-13 20:22:42

标签: android cordova input

经过大量的Google搜索后,我发现很多人都遇到了我遇到的同样问题,但没有解决方案。我正在使用Phonegap来构建Android应用。我有一个输入字段,类型设置为数字(这允许弹出数字键盘)。如果我输入0.1生活是好的。如果我在输入框中输入.1,我会返回一个空白字段。我尝试了这段代码,它适用于网络版,但不是在应用程序上尝试解决问题:

    $('#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。

2 个答案:

答案 0 :(得分:0)

如何检查'。'值的变化。并立即用'0'替换?这样,如果有人试图输入“.1”,它会自动更改为“0.1”。

您可以尝试将eventHandler用于'keyup',这比模糊更直接:

$('#merchantInput input[type=number]').on('keyup', function() {
    if($(this).val() == '.') {
        $(this).val('0.');
    }
};

答案 1 :(得分:-1)

我遇到了同样的问题,经过一番谷歌搜索(并在许多搜索的顶部看到这篇文章 - 因此发布给其他人)发现了这个答案:https://stackoverflow.com/a/19012837/6466287

基本上你使用step属性来定义如何增加数字:

<input type="number" step="0.001" min="0" max="200" inputmode="numeric" pattern="\d+(\.\d*)?" name="weight">

这将允许小数位数为3位小数。