为什么jQuery .submit()事件似乎不会在iPad上触发?

时间:2017-09-29 22:35:18

标签: javascript jquery ipad submit

我目前遇到的问题是我的表单需要将其默认提交行为中断并替换为Ajax调用。我目前的设置似乎适用于所有其他桌面和移动设备(包括iPhone!),但iPad始终无法使用。具体来说,jQuery的.submit()似乎根本没有触发。在alert()event.preventDefault();语句之间放置return false;调用似乎表明永远不会到达代码块。我还尝试将提交按钮切换到普通按钮,然后单击提交,并切换到on('submit', functon(){...});语法无效。

关于可能原因的任何解决方案或想法?

HTML结构:

<form id="targetForm" action="">
    <!--inputs go here-->
    <input type="submit" value="Submit"/>
</form>

Javascript结构:

<script>
    $(document).ready(function() {
        $('#targetForm').submit(function(event) {
            event.preventDefault();
            alert('test');
            //Ajax call goes here
            return false;
        });
    });
</script>

1 个答案:

答案 0 :(得分:0)

事实证明,问题存在于$(document).ready()事件之外定义的无关函数中,其中变量声明未以分号结束且缺少var关键字。它在任何其他设备上都没有出错,但导致整个外部JS文件无法执行。

编辑,更多信息:在iPad上使用任何JS引擎似乎都存在问题。出于某种原因,任何小的技术上不正确的语法问题(如果你出于某种原因使用默认参数值,它甚至会失败!)在脚本文件中的任何地方都会阻止任何JS运行。对于非常精确地满足非常具体的语法标准,他们的引擎似乎非常严格,并且如果你不完全符合它们,那么就会因为失败错误而严重惩罚你。

简而言之:我的登录问题已解决。