2014-01-13 39 views
1

經過大量的Google搜索之後,我發現很多人都遇到了與我遇到的問題相同的問題,但沒有解決方案。我正在使用Phonegap構建Android應用程序。我有一個類型設置爲數字的輸入字段(這允許數字鍵盤彈出)。如果我輸入0.1,生命是好的。如果我在輸入框中輸入.1,則會返回一個空白字段。我嘗試了這一點的代碼,它適用於網絡版本,但不是在應用程序嘗試修復問題:輸入類型=數字不允許使用Phonegap的Android上的小數點

$('#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); 
}); 

我仔細....當你進入0.3我得到0.00。

+0

這是什麼版本的Cordova/phonegap? – MBillau

+0

它的版本是3.1.0 – BriKau

回答

0

如何檢查'。'值的變化。並立即用'0'替換?這樣,如果有人試圖輸入'.1',它會自動更改爲'0.1'。

你可以嘗試使用一個事件處理程序爲「KEYUP」這將是更直接的比模糊:

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

這就是我的代碼已經在做...雖然好主意! – BriKau

+0

編輯我的答案,顯示使用比模糊更直接的連接 –

+0

沒有工作。我欣賞它,但。我認爲這個問題是如何編譯Phonegap的。如果我記得正確的本地Java有一個數字和十進制輸入類型。 Phonegap,我相信只能編譯爲數字,以便輸入字段不會將句點識別爲第一個字符。 – BriKau

-1

我有同樣的問題和一點點周圍的Googling(,看到這個帖子在許多後上方搜索 - 因此發帖替他人)發現了這樣的回答: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位。

相關問題