2014-05-13 30 views
0

我目前正在開發一款針對使用apache cordova和HTML5的android和桌面設備的應用程序。默認情況下爲數字鍵盤,但允許使用文本

爲了讓數字鍵盤彈出,我用input type="number",它工作正常。

但是,輸入欄也應該接受stringstype=number的當前功能是ui似乎允許輸入字符串,但如果輸入無效(例如不是數字),則該元素的值屬性不會更改。

有沒有辦法讓移動設備上的數字鍵盤仍然能夠輸入文本?

我的初始嘗試包括捕獲keydown事件並手動設置this.value屬性。我已經嘗試過使用jQuerys .val(),當然還有更多的「原生」方法element.val += char。這些都不起作用。 UI已更新,但更改未反映在模型中。

編輯

在接下來的傢伙努力實現這一目標。

1) HTML解決方案。

正如@LuudJacobs在下面的評論中提到的那樣; 目前沒有辦法決定顯示哪個鍵盤,除了定義類型屬性。雖然有些設備有一個返回到字母鍵盤的按鈕,但不是每個設備的情況。並不能可靠地使用。

2)寫一個phonegap/cordova插件。

可以編寫一個插件來隨意顯示和隱藏鍵盤。但是,據我所知,目前沒有辦法通過程序將其默認爲符號鍵盤。因此,實現的功能類似於在HTML中使用type=numbertype=text。這種方法的另一個問題是Android設備鍵盤的多樣性,即使用戶自己也可以安裝自定義鍵盤。因此鍵盤的功能可能是未知的。在一臺設備上運行什麼,可能無法在下一臺設備上運行。

3) JS/HTML /帆布溶液

最後...一個可行的解決方案。我建議看看this walkthrough,因爲它顯示了使用html和js創建鍵盤的簡單方法。另一種選擇是使用畫布,並自己繪製鍵盤,但我會想象這會更容易出錯,也更難做。

回答

0

如在HTML5 spec中所解釋的那樣,您可以在而不是有一個除input type="number"之外的有效浮點數。所以你不能。在旁註中:用戶在只有數字鍵盤時如何輸入文字?

+0

使用'type = number'不是必需的,所需的功能只不過是將數字/符號作爲默認鍵盤彈出。 在我的平板電腦上,即使將type屬性設置爲數字,也可以更改爲普通鍵盤。雖然這可能(應該??)不適用於其他設備。 – atomman

+0

我不認爲你可以依靠所有設備上的工作。 – LuudJacobs

+0

我剛剛在我的手機上進行了測試,結果沒有成功。所以'type = number'在這一點上幾乎不在圖片中。由於我需要數字和字母,但寧願將數字/符號鍵盤顯示爲默認值。 – atomman

相關問題