2017-06-21 18 views
0

在以下代碼段中,如果我輸入「9999999999」和「9999999999.」在控制檯日誌中都顯示與「點」相同的結果「999999999」。Android設備和瀏覽器中的輸入類型編號的捕獲點

我試圖在數字後面捕獲點符號。在這裏,只允許輸入類型編號不能使用文本或任何其他類型。

文本框是數字

Number: <input type='number' id=txtNumber'/> 

而且它的JavaScript函數

$(document).ready(function() { 
    $('#txtNumber').keyup(function() { 
    var numbers = $(this).val(); console.log("numbers", numbers); 
    }); 
}); 

代碼在JSFiddle

請幫忙找解決方案。

+1

因爲'「9999999999.」的數值是'9999999999'。由於它是'type ='number'',那麼'.val()'會將該值轉換爲一個數字。 –

+0

[如何獲得一個字段的原始值?](https://stackoverflow.com/questions/18852244/how-to-get-the-raw-value-an-輸入類型數字字段) –

+0

可能[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - *爲什麼*你想這樣做,你想達到什麼目的? –

回答

0

原因是你設置了type='number'。 我建議你設置type='text',並使用正則表達式來檢查,如果輸入的值是一個數字(包括點)或不:

$(document).ready(function() { 
     $('#txtNumber').keyup(function() { 
     if ($(this).val().match(/^[0-9]*\.?[0-9]*$/)){ //check if your value is number or not 
     var numbers = $(this).val(); console.log("numbers", numbers); 
     } 
     }); 
    }); 
+0

泰語,輸入類型應爲數字。 –

0

您可以使用一個函數來做到這一點:

$(document).ready(function() { 
     $('#txtNumber').keyup(function() { 
      var numbers = $(this).val(); console.log("numbers", numbers); 
      // dump(numbers); 
      numbers = parseInt(numbers).toFixed(2); 
      console.log(numbers); 
     }); 
    }); 

它會給你你想要的輸出。

+0

它是否適合你@Sudhakar Jonnakuti? –

+0

你的問題應該測試你的代碼。這不僅不會工作,但你會得到一個錯誤:'numbers.toFixed不是一個函數'。 –

+0

Himanshu - 它產生的錯誤就像numbers.toFixed不是一個函數。 –

相關問題