2010-01-05 3 views
0

최근 모바일 사파리 (iPhone, iPod Touch)에서 내 쇼핑 카트 응용 프로그램이 중단되었다는 알림을 받았습니다. "장바구니에 추가"양식은 jQuery를 사용하여 AJAX 업데이트를 지원하는 '점진적 향상'접근 방식을 사용합니다. 일부 빠른 테스트 결과 실제로이 기능이 JavaScript가 비활성화 된 상태로 작동 함이 확인되었습니다. 지금까지 읽은 모든 것은 iPhone이 "form.onsubmit"이벤트를 지원하지 않는다는 것을 나타냅니다.이 이벤트는 현재 jQuery와 바인딩하여 AJAX 트랜잭션을 시작합니다.iPhone과 호환되는 기존 AJAX 양식을 만들려면 어떻게해야합니까?

없이 iPhone 지원 을 추가하여 브라우저를 검색하거나 대체 스크립트를 제공하도록 수정할 수 있습니까?

현재 양식 서식 :

<form method="post" action="" class="my-cart"> 
    <fieldset> 
     ... 
     <input type="submit" name="my-button" value="add to cart" /> 
    </fieldset> 
</form>

그리고 스크립트 이벤트 : 나는 대부분의 브라우저는 AJAX/JavaScript를 지원 (브라우저 지원의 측면이 큰 성공을 했어

$('form.my-cart').submit(function(){ 
    ... 
});

있지만, 모든 다른 사람 - 아이폰을 제외하고 -는 정규 양식 제출 등으로 돌아갈 것입니다.). iPhone에서 AJAX 기능을 지원하고 싶습니다. 그러나 JavaScript를 우회하여 해결할 것입니다. 그렇다면 iPhone은 제출 버튼을 클릭 할 때이 아닌 이 아닙니다.

답변

0

응답자 모두에게 감사드립니다. 이 문제는 일부 다른 관련 코드와 충돌하는 것으로 판명되었습니다. 양식 자체가 작동했지만 위의 코드가 제출 이벤트의 트리거링을 방해하기 때문에 이벤트가 호출되지 않았습니다.

1

나는 ajaxSubmit 기능을 사용하여 아이폰에 JQuery와 양식 플러그인 (http://jquery.malsup.com/form/)를 사용했습니다 그것은 큰 일 :

$('form.my-cart').ajaxSubmit(function(){ 
    ... 
}); 
+0

고마워요, 시작이었습니다.하지만 코드 무거운 것을 조금 기대하고있었습니다. 이 플러그인은 form.submit 및 button.click 이벤트에 바인딩됩니다. 후자는 iPhone과 함께이 작업을 수행하는 열쇠 일 수 있습니다. –

2

저스틴,

을 당신은 here에 Malsup의 최신 플러그인을 확인할 수 있습니다. 양식을이 플러그인에 바인딩하는 방법에 대한 예를 볼 수 있습니다. ajaxSubmit() 또는 단순한 ajaxForm()을 사용하는 두 가지 방법이 있습니다.

ajaxSubmit()을 사용하는 경우 수동으로해야하며 제출 버튼 클릭 이벤트를 처리하고 메소드를 호출해야합니다. ajaxForm()을 사용해보십시오. 플러그인이 필요한 모든 바인딩을 수행합니다. 양식을 제출할 때마다 플러그인이 자동으로 처리하므로, 제출 버튼 클릭 이벤트를 직접 처리 할 필요가 없습니다.

이 플러그인이 무겁다 고 생각하면 어떻게 생각합니까? 이 플러그인은 모든 유형의 표준 양식을 처리 할 수 ​​있습니다. here 테스트를 참조하십시오. 다양한 유형의 양식 필드를 처리하기 위해 다른 플러그인보다 더 잘 작동합니다. 플러그인은 필드 값을 가져 오는 다양한 메소드도 제공합니다. formSerialize()

관련 문제