我一直在寻找一个这样的工作示例,并且没有找到任何实际可行的方法。隐藏或禁用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。