当前位置: 首页 > 面试题库 >

HTML:为什么Android浏览器在键盘上显示“ Go”而不是“ Next”?

齐坚成
2023-03-14
问题内容

我有一个HTML登录表单,其中包含以下元素(按此顺序):

  • input type=text (输入用户名)
  • input type=password (密码)
  • input type=submit (登录按钮)

当焦点位于时,为什么Android浏览器在软键盘上显示“转到”按钮而不是“下一步”按钮text input?这会导致用户无法轻松登录,因为在输入用户名后,用户按下键盘右下角的按钮(通常是正确的操作),表单将使用空密码提交,这显然是行不通的。[如果我的浏览器设置为记住密码,并且密码管理器可以填写密码,则此行为很有意义。但是,这里不是这种情况,因为您可以在下面进行自我测试。]

我想让输入类型文本具有“下一步”按钮,让输入类型密码(提交之前的最后输入)具有“开始”按钮。

有问题的表单的示例位于https://peda.net/:login(此表单包含用于检测输入的“
Enter”键并阻止提交表单的代码,除非最后一个可见的表单输入被聚焦)。

您知道此问题的真正解决方法吗?我知道,如果要实现本机应用程序,我会使用android:imeOptions="actionNext"(请参阅如何将Android软键键盘的“转到”按钮更改为“下一步”)。但是,在这种情况下,它是HTML表单和Android默认浏览器。

该问题至少在以下配置中可见:

  • 在Android 2.3.4(Cyanogenmod 7)上运行的“浏览器”系统应用
  • 在Android 4.2.2(Cyanogenmod 10.1)上运行的“浏览器”系统应用
  • 在Android 4.3.1(Cyanogenmod 10.2 M1)上运行的“浏览器”系统应用
  • 在Android 4.4.2(Cyanogenmod 11.0 M3)上运行的“浏览器”系统应用(AOSP浏览器)
  • 在Android 5.5.1(Cyanogenmod 12.1)上运行的“浏览器”系统应用程序(AOSP浏览器)[具有箭头图标,而不是单词“ Go”]
  • 在Android 6.0.1(Cyanogenmod 13.0)上运行的“浏览器”系统应用程序(AOSP浏览器)[具有箭头图标,而不是单词“ Go”]

问题答案:

Android浏览器始终显示“输入”字段,因为网络上的某些表单(尤其是搜索框)没有提交按钮,并且只能通过按Enter激活(Go等同于Enter)。

取而代之的是,某些版本的Android将在键盘的右下角显示一个Tab键,以方便在表单字段之间导航。

我认为您无法阻止这两种行为。

两种可能的解决方法:

  1. 使用JavaScript忽略提交登录表单,直到两个输入都为非空白为止:

    <form name="loginForm" onsubmit="return document.loginForm.user.value != '' && document.loginForm.pass.value != ''">
    <input type="text" name="user">
    <input type="password" name="pass">
    <input type="submit" value="Login">
    


 类似资料:
  • 问题内容: 我早就意识到,HTML文件中的任何空白集都只会显示为单个空格。例如,这: 显示为: 你好。你好。你好。你好。你好。 这非常好,就像您需要多个空格的预格式化文本一样,您只需使用 问题答案: 在HTML中压缩空间是因为在HTML的格式设置和呈现方式之间存在区别。考虑这样的页面: 例如,如果HTML使用空格缩进,则链接前面将带有多个空格。

  • 我正在使用Jersey实施Rest服务。我想在浏览器上显示JSON,但我得到的是XML。 我感谢你的帮助。

  • gRPC基于HTTP/2,浏览器广泛支持HTTP/2(假设)。因此,我觉得从浏览器使用gRPC应该没有问题。 然而,很明显有一个问题。协议grpc web是不同的,因为“由于浏览器限制”而存在。还有许多博客文章描述了为让gRPC从浏览器工作而部署的复杂技术堆栈。 我忽略了实际的问题——为什么gRPC不只是在浏览器上工作?

  • 问题内容: 对于Chrome, 对于Firefox, 为什么我们需要为Chrome和IE 指定? 问题答案: 我也有同样的问题,但是经过挖掘,我发现, 使用本机浏览器方法。Selenium提供了用于Firefox的内置驱动程序,但不提供其他浏览器的内置驱动程序。所有驱动程序(Chrome驱动程序,IE驱动程序等)都是基于每个浏览器使用的特殊JS引擎构建的。 Selenium 与Mozilla Fi

  • 对于铬, 对于Firefox, 为什么我们需要为Chrome和IE指定?

  • 我正面临一个奇怪的问题。我已经把所有东西都放在php.ini文件里了。但是我不能在浏览器中显示任何错误。我google设置了. ini文件,并做了所有需要的事情。但是我仍然不能在浏览器中显示错误信息。我的PHP ini设置, 我尝试使用以下代码查看错误消息, 实际上文件示例不可用。所以它必须显示致命错误。但它显示的是空白页。 你能告诉我怎么解决这个问题吗?我不知道我错过了什么。