2012-09-28 67 views
7

我知道有很多關於isssue已經回覆的問題,但是沒有給出的解決方案適用於我。輸入類型=數字鍵盤在Galaxy Tab中禁用點號

我正在爲使用三星Galaxy Tab的企業開發Web。有很多輸入內容都是十進制數字。所以我嘗試了<input type="number" />。但導航器顯示禁用點和逗號的鍵盤。不僅如此,還會將onfocus,點或逗號分隔符從值中刪除。

我已經嘗試設置一個像「0,1」,「0,01」,「0.1」,「0.01」,「任何」等等的步驟,嘗試使用正則表達式匹配十進制,最大值,數字...有沒有意見在左邊的stackoverflow嘗試,這是可怕的哈哈。

我使用三星Galaxy Tab 10.1與默認瀏覽器,但我還沒有找到任何文件談論它的HTML5實現的任何限制。所以現在我不知道我是否缺少某些東西,如果有什麼我可以嘗試,或者如果有什麼知道是Galaxy Tab的錯誤,那麼我無能爲力。

提前致謝。

+0

您是否嘗試過在平板電腦上安裝Chrome瀏覽器並使用它來測試的投入?安裝Chrome並將其設爲默認瀏覽器是我在兩款Galaxy Tab 3 10.1平板電腦上所做的第一件事。 –

+0

我知道這對於目標團隊來說是一個很難的要求,我們不是在談論「請停止使用IE」,而是「你有一個主要產品,但是無論如何你都必須使用默認瀏覽器」。無論如何感謝您的建議。我們終於開發了一個簡單的自定義HTML數字鍵盤。 –

+1

將此視爲三星Galaxy S3上的問題。似乎是'三星鍵盤'應用程序的問題,而不是AOSP瀏覽器或Chrome。 – contrebis

回答

2

HTML5 specification for input with a type of number指出應該允許任何可以解析爲valid floating point number的字符串。具體包括.以及-,+e

因此三星Galaxy Tab 10.1上的實現是無效的。

如果您需要支持此設備,則可能必須使用type="text"並驗證該字符串。這不會在具有軟件鍵盤的設備上自動彈出正確的鍵盤。

<input type="text" pattern="^-?(?:[0-9]+|[0-9]*\.[0-9]+)$" name="NumberInput"> 
+0

你打算說在Android股票瀏覽器上執行''是無效的嗎? –

+0

還是軟鍵盤? –

+0

@Mithun,這是我無法相信的,或者三星Galaxy Tab的本地瀏覽器的html5輸入類型=號碼是越野車,或者軟鍵盤不適合浮點數字,外界沒有人在說話關於那個。 –

4

在Android的命名空間,你可以使用:

android:inputType="numberDecimal" 

這使您可以輸入 「」

+0

對不起,你是在談論和orid應用程序的Web開發? –

+0

我在說android的XML。我看到你在做HTML5,但我認爲輸入類型是相似的。小數將是一個共同的要求,所以我不相信三星實施無效 – CocoNess

+0

在瀏覽器中的三星軟鍵盤確實無效。 – oldwizard

4

您需要延長您的WebView類,並使用它的對象是這樣

public class WebViewExtended extends WebView{ 

    public WebViewExtended(Context context) { 
     super(context); 
    } 

    public WebViewExtended(Context context, AttributeSet attrs) { 
     super(context, attrs);  
    } 

    public WebViewExtended(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
     InputConnection connection = super.onCreateInputConnection(outAttrs); 
     if ((outAttrs.inputType & InputType.TYPE_CLASS_NUMBER) == InputType.TYPE_CLASS_NUMBER) 
     { 
      outAttrs.inputType |= InputType.TYPE_NUMBER_FLAG_DECIMAL; 
     } 

     return connection; 
    } 

} 
+0

這個問題是關於HTML5 >我正在爲使用三星Galaxy Tab的企業開發一個網站。有很多輸入內容都是十進制數字。所以我試着用

+0

@ÁxelCostasPena這就是你如何在你的數字鍵盤上得到一個點。由於android的最新版本默認沒有在webview中使用它。更改將在後端(android端) –

+0

保存我們的一天。謝謝。 –

相關問題