我几乎使用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。
我希望为标准网络表单找到解决方案。感谢。
答案 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上为您测试:)