我一直在尋找一個這樣的工作示例,並且沒有找到任何實際可行的方法。隱藏或禁用WebView軟鍵盤開始/完成/輸入按鈕
我有一個簡單的在線反饋表單,我使用WebView安裝在Android設備上,專門用於Nexus 7(它只會在我們酒店的這些設備上使用)。
問題是,html反饋表單具有不同的字段集,其中一些單選按鈕與文本字段和文本區域。該表格是通過郵寄方式發送,我有打電話的形式jQuery驗證腳本:
<form name="form" method="post" action="feedback_manager/fb_save.php" onsubmit="return validateForm()" >
一切都運行得很好,除非用戶在文本字段中填入了有一個明確無誤的藍色「開始」按鈕,在軟鍵盤,他們必須在完成鍵入後點擊(或觸摸),問題是它不會將它們帶到下一個表單字段集,而是自動提交表單(或者在這種情況下運行我的驗證腳本第一)。
是不是KEYCODE_ENTER按鈕的默認操作應該將用戶發送到下一個字段集而不是提交表單?
我會分享我的HTML表單和希望我的web視圖腳本,有人可能會覺得我做錯了什麼:
<fieldset>
<legend>Food quality, taste & presentation</legend>
<input id="flavor4" name="flavor" value="excellent" type="radio" />
<label for="flavor4"> Excellent</label><br>
<input id="flavor3" name="flavor" value="good" type="radio" />
<label for="flavor3"> Good</label><br>
<input id="flavor2" name="flavor" value="average" type="radio" />
<label for="flavor2"> Average</label><br>
<input id="flavor1" name="flavor" value="bad" type="radio" />
<label for="flavor1"> Needs improvement</label><br>
</fieldset>
<fieldset>
<legend>Who was your waiter today?</legend>
<input name="waiter" type="text">
</fieldset>
//then another fieldset with radio buttons and so on
難道說我的文字輸入是不是一前一後,立即向右並與單選按鈕和組合框混合?
這裏是我的onkeydown代碼:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((event.getKeyCode() == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
{
mWebView.goBack();
return true;
}
if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
// do nothing
return false;
}
return true;
}
關於這個有趣的是,我的KEYCODE_BACK條件是工作正常,但我想KEYCODE_ENTER按鈕,要麼什麼也不做,只是關閉軟鍵盤或去下一個字段但不提交表格。
我在這裏看到很多答案,但他們沒有一個似乎在Nexus7上工作(在其他設備上沒有真正嘗試過)。因此,總結起來,我所需要的只是藍色的「Go」按鈕什麼也不做,或者去下一個領域。
請幫忙。
** 編輯 **
今天早上我在看這一個別開生面,發現這個類似的帖子,增加了一個OnKeyListener檢測鍵,然後返回false。 Enter key on EditText hitting onKey twice
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://some.url");
mWebView.setWebViewClient(new virtuoWebViewClient());
mWebView.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
// do nothing
return false;
}
}
return false;
}
});
,但仍然沒有,「轉到」按鈕仍然提交表單:(,我會繼續努力,如果有人可以點我在一個不同的方向或分享新的想法,我將不勝感激。Thx。