2017-09-29 5 views
0

현재 기본 제출 동작을 중단하고 Ajax 호출로 대체해야하는 양식이있는 문제가 발생합니다. 현재의 설정은 다른 모든 데스크톱 및 휴대 기기 (iPhone 포함)에서 작동하지만 iPads에서는 계속 실패합니다. 특히 jQuery의 .submit()은 전혀 트리거되지 않습니다. alert() 호출을 event.preventDefault(); 문과 return false; 문 사이에 배치하면 코드 블록에 도달하지 못하는 것으로 나타납니다. 또한 제출 버튼을 일반 버튼으로 전환하고 클릭시 제출하고 on('submit', functon(){...}); 구문을 사용하지 않으려 고 시도했습니다.jQuery .submit() 이벤트가 iPad에서 실행되지 않는 이유는 무엇입니까?

가능한 원인에 대한 해결책이나 아이디어는 있습니까?

HTML 구조 :

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

자바 스크립트 구조 :

<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가 실행되는 것을 방지합니다. 그들의 엔진은 매우 구체적인 구문 표준을 매우 정확히 준수한다는 점에서 엄청나게 엄격한 것으로 보이며 완벽하게 준수하지 않으면 오류를 심각하게 처벌합니다.

간단히 말해서, 로그인 문제가 해결되었습니다.