Javascript Android和HTML5数字输入自动提交行为

Javascript Android和HTML5数字输入自动提交行为,javascript,android,html,form-submit,Javascript,Android,Html,Form Submit,我正在写一个网页,它有一个表单,其中有一个zipcode字段,用于估算运费和税费。我希望在用户点击数字键盘上的enter键后提交表单 e、 g 输入zip: 目前的行为显然不够明显: <script> $(document).ready(function() { $('#ZipCode').keyup(function() { if($(this).val().length == 5) { $(this).closest('form

我正在写一个网页,它有一个表单,其中有一个zipcode字段,用于估算运费和税费。我希望在用户点击数字键盘上的enter键后提交表单

e、 g


输入zip:
目前的行为显然不够明显:

<script>
$(document).ready(function() {
    $('#ZipCode').keyup(function() {
        if($(this).val().length == 5) {
            $(this).closest('form').submit();
        }
    });
    $('#ZipCode').focus(function() {
        $(this).val('');
    });
});
</script>

$(文档).ready(函数(){
$('#ZipCode').keyup(函数(){
if($(this).val().length==5){
$(this).closest('form').submit();
}
});
$('#ZipCode')。焦点(函数(){
$(this.val(“”);
});
});

理想情况下,我希望表单在用户关闭enter键或(如果可能)软键盘时自动提交。在Android浏览器中使用JavaScript有什么方法可以做到这一点吗?

您可以尝试添加隐藏按钮。这至少在Chrome中有效。当窗体具有提交按钮时,按下enter键时会自动触发该按钮

<form method="GET">
    <input type="hidden" id="ProductCode" value="12345" />
    Enter zip: <input type="number" id="ZipCode" />
    <button type="submit" style="display:none">
</form>

输入zip:

您可以使用
$(“表单”).submit(函数(){//run when form is submit})
来实现提交代码。

在表单中放置一个提交按钮,回车键将自然提交表单

<form method="GET">
    <input type="hidden" id="ProductCode" value="12345" />
    Enter zip: <input type="number" id="ZipCode" />
    <input type="submit" value="submit" style="visibility: hidden" /> 
</form>

我遇到的问题是,当在数字键盘上输入enter时,submit()没有在我的测试设备上启动。当我尝试在onKeyPress、onKeyUp、onKeyDown事件处理程序中捕获扫描代码时,enter键甚至没有注册。在我的设备(Galaxy S II)上,所有的回车键似乎都是关闭数字键盘。我已经尝试了上述两种实现,但没有任何行为改变。我几乎想知道是不是UI覆盖…@KrisOye我现在明白你的意思了。我知道android的“enter”键是一个双离奇键,不向事件处理程序注册,但我认为它至少会用一个按钮提交表单(硬件和软件键盘)。我脑子里没有别的解决办法。
<form method="GET">
    <input type="hidden" id="ProductCode" value="12345" />
    Enter zip: <input type="number" id="ZipCode" />
    <input type="submit" value="submit" style="visibility: hidden" /> 
</form>
$('form').submit(function() {
    var invalid = $('#ZipCode').val().length !== 5;
    if(invalid)
        return false
});