禁用Android中的“转到”按钮表单提交

时间:2011-12-13 18:34:15

标签: android asp.net html jquery-mobile

我几乎使用jQuery Mobile完成了一个ASP.NET webforms网站。我被困在一个特定的用例上。

该网站的范围包括支持Android,iPhone,BlackBerry和Windows Mobile,除了一个特定的用例外,所有功能都很有效。

案例是当用户在其中一个输入框中输入值然后点击本机Go / Enter键时。我正在捕获这个并使用jquery抛出相应的事件提交按钮单击/点击。

function BindSubmit(textbox, button) {
    $(textbox).unbind().keypress(function (event) {
        var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
        if (keyCode == 13) {
            $(button).trigger('tap');
        }
    });
}

这适用于除Android之外的所有设备。电话最终提交整个表单而不是跟随用例。抓取onsubmit事件并返回false也不起作用。经过一番挖掘后,我发现了Disabling 'go' button form submission in Android when using webview

我希望为标准网络表单找到解决方案。感谢。

2 个答案:

答案 0 :(得分:1)

感谢您的帮助。我们解决这个问题的方法是绑定到form.submit事件并自己调用mobile.changePage()。然后在changePage()之后返回false;这阻止了完整的表单提交,仍然允许jquery mobile完成其操作。

答案 1 :(得分:0)

尝试运行$(button).trigger('click')。这可能是发送事件的更好,更跨平台的方式。

你绝对应该尝试在Android手机上进行测试,并找出执行失败的时间和地点:

function BindSubmit(textbox, button) {
    console.log("BindSubmit()");
    $(textbox).unbind().keypress(function(event) {
        var keyCode = ...;
        console.log("Key pressed: " + keyCode + ", isEnter: " + keyCode == 13);
        if (keyCode == 13) {
            console.log("Enter key hit, triggering event.");
            ...;
        }
    });
}

如果您有链接,我很乐意在您的Nexus One上为您测试:)