2017-09-29 9 views
0

私は現在、デフォルトの送信動作を中断してAjax呼び出しに置き換える必要があるフォームを持っている問題に遭遇しています。私の現在の設定は、他のすべてのデスクトップおよびモバイルデバイス(iPhoneを含む)で動作するようですが、iPadsでは一貫して失敗します。具体的には、jQueryの.submit()はまったくトリガーしていません。 alert()コールをevent.preventDefault();文とreturn false;文の間に置くと、コードブロックに到達することはないと思われます。私はまた、送信ボタンを通常のボタンに切り替えて、クリックして送信し、on('submit', functon(){...});の構文を無駄にすることに切り替えました。jQueryの.submit()イベントがiPadsでトリガーされないように見えるのはなぜですか?

考えられる原因については、

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> 
+0

[私のiPadでうまくいく](http://output.jsbin.com/cobetimahu) –

+0

@ T.J.Crowderソフトウェアバージョンを提供してもよろしいですか?私は比較する機会に非常に感謝しています。 –

+0

iOS 10.3.3 ..... –

答えて

0

それは問題は変数宣言がで終了していなかった$(document).ready()イベントの外部で定義された関係のない機能に存在していたことが判明セミコロンであり、キーワードはvarではありませんでした。それは他のデバイスでエラーを起こさなかったが、外部JSファイル全体が実行されなかった。

編集:詳細情報:iPadsで使用されているJSエンジンに問題があるようです。何らかの理由で、何らかの理由でデフォルトのパラメータ値を使用すると、技術的に間違った小文字の問題(スクリプトファイル内のどこでもデフォルトのパラメータ値を使用すると失敗することさえあります)は、JSが実行されないようにします。彼らのエンジンは非常に正確に非常に具体的な構文基準に厳密に厳密に厳しいと思われ、完全に準拠していないと誤ったエラーであなたを厳しく処罰します。

要するに、私のログインの問題が解決されました。

関連する問題