在手机上单击“转到”时停止表单提交
Stop form submitting when clicking 'Go' on mobiles
有没有办法将按钮链接到输入,以便手机知道当您在 .NET 上下文中按键盘上的Next
或Go
时该怎么做(即在输入上按"Go"会伪造单击下一个按钮而不是提交表单)?
让我们讨论一下代码。我有以下标记,其中injected-via-js
通过javascript注入到大型形式(渐进式增强)中。
<form class="dotNET-form-wrapper">
<div class="injected-via-js">
<div>
<span>£</span>
<input type="number" />
</div>
<div>
<button>accept</button>
</div>
</div>
<!-- More form elements -->
</form>
在大多数移动浏览器上,当您更改数字输入中的值并按 Go
或Enter
时,它会伪造按钮按下(在我的情况下,它绑定了一个重要事件)。但是,在某些旧的Android设备上,按Go
将提交表单,这不是我想要的。澄清一下:我希望Go
按钮伪造按钮按下,而不是提交表单。
注意:.NET 仅与此问题相关,因为所有内容都包装在一个表单中,这意味着我无法围绕输入和按钮创建单独的表单并劫持新表单的提交。
我制作了一个 JSBin,我能够用Android 2.2
手机复制此错误,尽管我想它也存在于其他不良浏览器上。它在iOS 6+
和Android 2.3+
上按预期工作。
这是演示页面:http://jsbin.com/tebizoda/2
这是编辑版本:http://jsbin.com/tebizoda/2/edit
"Go"和"Enter"都有键盘上的回车键代码(13),所以你应该创建一个JavaScript或jQuery函数来覆盖默认行为,只触发按钮按下。像这样(jQuery中的例子):
$(your_form_or_input).keypress(function (e) {
if (e.keyCode == 13) {
return false;
} else {
// your code here...
}
});
请注意,某些浏览器使用e.keyCode,其他浏览器使用e.keys来确定按下的键代码。
相关文章:
- 使用javascript将表单提交到iframe目标中
- 如何在没有表单提交、没有js、没有jquery和没有ajax的情况下将输入的文本框值存储到php变量中
- 动态添加/复制表单时绑定到表单提交事件
- Phonegap打开表单提交到Web浏览器上的外部域
- 动态HTML元素-如何将表单提交到php
- 使用jquery进度条重定向到表单提交后的另一个页面
- 如何将多个条件添加到表单提交或文本框输入中
- 如果文本字段不为空,则自动将表单提交到url
- 表单验证转到下一页
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- 如何将HTML表单提交到2个位置=Java脚本和PHP
- 在不使用提交按钮重新加载的情况下将表单提交到PHP页面
- 表单提交转到Javascript-并保持在同一页面上
- 使用ajax发布表单,然后将相同的表单提交到其他url
- 提交的表单重定向到输入URL
- 使用单选按钮根据表单输入转到URL
- 使提交按钮从表单元素转到URL
- 输出表单提交成功到页面,而不是重定向
- 在手机上单击“转到”时停止表单提交
- Iframe表单提交数据到窗口URL