使用preventDefault时,BlackBerry 10浏览器使用浏览器提交按钮提交表单

时间:2013-08-01 12:31:34

标签: javascript html ajax forms blackberry-10

当我在我们公司网站的移动版本上工作时,我遇到了,我认为是BlackBerry 10浏览器的一个问题。 (我正在使用Q10,版本10.1.0.4181)

我正在使用jQuery绑定到表单上的submit事件来进行AJAX调用,所以我有一个preventDefault,但似乎BB10在使用浏览器提供的SUBMIT按钮时似乎忽略了这个 /强>

当按下回车键或按下表单的提交按钮时,它工作正常,但是当我按下浏览器底部的提交按钮(与上一个/下一个按钮一起)时,它会忽略preventDefault (并返回false)并继续提交表单。

我已经设置了一个jsfiddle来证明这一点:
http://jsfiddle.net/e4AHZ/4/

我用来绑定的代码是:

$(function () {
    $(document).on('submit', 'form', function (e) {
        e.preventDefault();
        alert('done!');
        return false; // as final resort, no luck =(
    });
});

其他有此问题的人?是否有可能的修复/解决方法?

谢谢!

2 个答案:

答案 0 :(得分:0)

我通过向您添加 action =“javascript:void(0);”来解决这个问题(请参阅更新的小提琴http://jsfiddle.net/e4AHZ/11/)。

我不知道这是否足够好,但 action =“javascript:void(0);”实际上是给定to a similar question的解决方案的一部分。

<form method="post" action="javascript:void(0);">
    <input type="text" name="field1" value="some msg" />
    <input type="text" name="field2" value="some msg" />
    <input type="submit" />
</form>

答案 1 :(得分:0)

您还可以将操作设置为“javascript:ajaxfunction();”其中“ajaxfunction()”是您要调用以提交表单的函数:

$('form').attr("action","javascript:ajaxfunction();");

这应该允许您利用该提交按钮。