禁用';go';Android中的按钮表单提交
我几乎已经使用jQuery Mobile完成了一个ASP.NET webforms网站。我被一个特定的用例卡住了 该网站的范围是支持Android、iPhone、BlackBerry和Windows Mobile。除了一个特定的用例外,所有的功能都非常好 这种情况是用户在其中一个输入框中输入值,然后点击本机的Go/Enter键。我捕获了这一点,并使用jquery抛出相应的事件提交按钮click/tap禁用';go';Android中的按钮表单提交,android,asp.net,html,jquery-mobile,Android,Asp.net,Html,Jquery Mobile,我几乎已经使用jQuery Mobile完成了一个ASP.NET webforms网站。我被一个特定的用例卡住了 该网站的范围是支持Android、iPhone、BlackBerry和Windows Mobile。除了一个特定的用例外,所有的功能都非常好 这种情况是用户在其中一个输入框中输入值,然后点击本机的Go/Enter键。我捕获了这一点,并使用jquery抛出相应的事件提交按钮click/tap function BindSubmit(textbox, button) { $(te
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也不起作用。经过一番挖掘,我发现了这个
我希望一个标准的网络表单能够解决这个问题。谢谢。试着运行$(按钮)。触发器('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上为您测试:)谢谢您的帮助。我们解决这个问题的方法是绑定到form.submit事件并自己调用mobile.changePage()。然后在changePage()之后返回false;这阻止了完整表单提交,仍然允许jquery mobile完成其操作。您是否尝试过触发
$(按钮)。触发('click')
,而不是“点击”?你有Android设备可以测试吗?您的代码正在执行吗?捕获事件并不是真正的问题。jquery mobile可以在不提交表单的情况下完成其操作并加载a href,表单返回Default.aspx。我要看看我是否可以设置一个JSFIDLE来测试,非常好,是的,我很乐意帮助。这允许键盘被删除吗?对不起,我没有那个代码了。关于键盘的问题,我认为只要你不把焦点放回到输入上,就可以不用点击go按钮了。