2012-01-28 2 views
0

내 목표는 사용자가 하나의 양식을 작성하고 JavaScript를 사용하여 두 곳으로 양식을 게시하는 것이며이를 위해 this fiddle을 작성했습니다.한 번의 클릭으로 2 개의 양식 제출이 어려움

  1. input[type='submit'] 버튼이있는 양식이 하나 있습니다.
  2. 사용자가 양식을 제출하면 jQuery가 양식을 가로 채고 플래그를 설정하고 AJAX를 통해 대체 위치로 제출합니다.
  3. 성공하면 AJAX 콜백이 양식을 다시 제출하도록 트리거합니다. JS는 (2)에서 설정된 플래그를 알아 차리고 제출이 자연스럽게 발생하도록 허용합니다.

문제는 두 번째 제출이 발생하지 않는다는 것입니다. 버튼을 두 번째로 클릭하면 폼이 전체 POST를 수행하므로 논리가 정확한 것입니다. 브라우저가 사용자 동작 당 양식을 제출할 수있는 횟수에 대한 제한이 있습니까? 왜이 기능이 작동하지 않습니까?

+0

논리적으로, 내가 네 말할 것입니다. 브라우저는 POST 요청이 보내 졌을지라도 페이지를 새로 고치고 싶은지 묻는 확인 메시지를 사용자에게 보냅니다. –

+0

성공 함수에서 두 번째 시도로 다른 이벤트를 트리거하고 click 이벤트에서 click 이벤트의 끝에 e.preventDefault()를 넣고 e를 매개 변수로 추가 할 수 있습니다 함수)를 사용하여 전체 페이지 다시 게시를 방지합니다. 그러나 세부 정보가없고 코드를 보지 않으면 질문에 대답하기가 어렵습니다. – MacGyver

+0

@MacGyver 필자의 코드를 보여주기 위해 바이올린을 만들었습니다. http://jsfiddle.net/jeffrod/M7Bfb/ – Jeff

답변

2

jQuery ajax() 호출을 사용하여 AJAX를 통해 대체 위치에 양식을 제출할 수 있으며 성공 이벤트에서 원래 위치로 제출할 수 있습니다.

체크 아웃 코드 : 그것은 악의적 인 사이트가 당신이 (예를 들어) 구매 제품에 대한 두 번 요금을 부과 할 수 있도록하는 것처럼 http://jsfiddle.net/M7Bfb/2/

+0

정확히 내가 동시에 쓴 내용은 다음과 같습니다. – kontur

+0

본질적으로 내가 한 일이 아니고 jQuery 양식 플러그인 만 사용 했습니까? – Jeff

관련 문제