2011-10-13 4 views
4

몇 가지 복잡한 검사를 한 후 수동으로 양식을 제출하고 싶습니다. 검사에는 사용자 상호 작용이 포함되므로 전체 검사 프로세스가 동 기적으로 수행되지 않습니다. 여기에 시나리오는 다음과 같습니다수동 양식 제출에 게시 매개 변수를 추가하는 방법은 무엇입니까?

  1. 사용자는 버튼 (AN HTML <button id='button-id'> 태그)
  2. 내가 버튼의 기본 동작 (양식 제출 인)
  3. 나는 복잡한 확인을 방지 클릭합니다.
  4. 체크 프로세스의 어느 부분에서 대화 상자를 표시하고 사용자가 응답 할 때까지 기다립니다 (여기에서는 원래의 체크 기능이 진행되어 반환됩니다).
  5. 나는 대화 상자에 콜백 함수를 제공합니다.이 콜백 함수는 사용자가 닫기 (긍정적이거나 부정적인 결과)
  6. 이제 양식을 제출해야하지만 원래의 <button id='button-id'>successful control으로 게시되어야합니다. 즉, 단추 태그 name을 게시 된 매개 변수 중 하나로 서버에 추가해야합니다.

저는 jQuery의 $('#form-id').submit() 메소드를 사용합니다. <button> 요소의 name을 HTTP Post 매개 변수에 추가하려면 어떻게합니까?

+1

를 사용 id '). submit()'을 호출하면 유효성 검사가 끝났는지 여부를 나타내는 플래그를 설정하고'$ ('# button-id ')를 호출 할 수 있습니다. ') .submit()'을 사용하십시오. 이 방법이 효과가 있는지는 잘 모르겠지만 시도해 볼 수는 있습니다. –

+0

예 @FelixKling, 이것이 우리의 첫 번째 솔루션이었습니다. 제안 해 주셔서 감사합니다. 하지만 그건 단지 해킹 일뿐입니다. 매개 변수를 게시하기 위해 무언가를 추가 할 수 있는지 여부를 알고 싶습니다. 이것은 간단한 해결책 인 것 같습니다. :) –

+0

또한 '

답변

4

당신은 제출하기 전에 양식에 숨겨진 필드를 추가 할 수 -

$('<input>').attr({ 
    type: 'hidden', 
    id: 'buttonid', 
    name: 'buttonid', 
    value: yourbuttonidvar 
}).appendTo('#form-id'); 
+0

이것은 또 다른 해킹입니다. 그러나 그것은 좋은 것입니다. +1. –

+0

@ ipr101,이 질문에 대한 답변이 아닙니다. 하지만 이것은 좋은 해결책입니다;) –

0

을 대신 버튼 타입을 사용, 왜 '# 형상 - 직접 (`$를 호출하는 대신

<input type="submit" name="commit" id="button_id" ...> 
+0

당신은 내가 의미했던 것을 얻지 못했습니다. 컨트롤 자체는 중요하지 않습니다. 중요한 것은 내가 원래의 행동을 취소한다는 것입니다. 그러나 마침내 HTTP Post에 성공적인 컨트롤로 포함하고 싶습니다. –

+0

아마도 그렇지는 않지만 - 컨트롤의 "컨트롤 이름"은 name 속성에 의해 제공됩니다. 나는 당신이 겪고 자하는 문제가 버튼으로 입력 제출과 함께 이름이 제출되지 않는다고 생각했다. – chrispanda

관련 문제