为什么jQuery .submit()事件似乎没有在iPad上触发



我当前遇到了一个问题,即我的表格需要中断其默认的提交行为,并用AJAX调用代替。我当前的设置似乎适用于所有其他台式机和移动设备(包括iPhone!),但iPad始终失败。具体而言,jQuery的.submit()似乎根本没有触发。在event.preventDefault();return false;语句之间放置alert()调用似乎表明未达到代码块。我还尝试将提交按钮切换到普通按钮并提交单击,然后切换到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>

事实证明,该问题存在于在$(document).ready()事件之外定义的无关函数中,该函数未被半声明终止,并且缺乏var关键字。它没有在任何其他设备上丢下错误,但导致整个外部JS文件无法执行。

编辑,更多信息:iPad上使用的JS引擎似乎是一个问题。出于某种原因,任何小的技术错误的语法问题(如果您出于某种原因使用默认参数值!)脚本文件中的任何地方都会阻止任何JS运行。他们的引擎似乎非常严格,非常严格地符合非常具体的语法标准,如果您不完全符合他们的错误,会严重惩罚您的错误。

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

最新更新