2010-01-24 2 views
39

한다고 가정 나는 다음과 같은 HTML 양식이 있습니다HTML 양식에 두 개의 <input type = "submit"> 버튼이있는 경우 클릭 한 항목을 어떻게 알 수 있습니까?

<form> 
... 
<input type="submit" name="queue" value="Queue item"> 
<input type="submit" name="submit" value="Submit item"> 
</form> 

가 어떻게 사용자가 (자바 스크립트를 사용하지 않고) 클릭하는 버튼을 알고 있습니까?

제출 된 데이터를 살펴보면 "Queue Item"을 클릭하면 "queue" = "Queue Item"이 서버로 전송됩니다. 그리고 "Submit item"을 클릭하면 "submit" = "Submit item" 세트가 전송됩니다.

이 동작에 의존 할 수 있습니까? HTML 양식의 표준 어딘가에 문서화되어 있습니까? 너희들 어떻게 지내니?

+1

[두 개의 버튼을 한 양식으로 제출할 수 있습니다] (http://stackoverflow.com/questions/547821/two-submit-buttons-in-one-form)) –

답변

49

네, 이에 의존 할 수 있습니다. 그것은 완전히 문서화되어있다 here. 특정 관련 줄은 다음과 같습니다.

처리를 위해 양식을 제출하면 일부 컨트롤의 이름이 현재 값과 쌍을 이루며 이러한 쌍이 양식과 함께 제출됩니다. 이름/값 쌍이 제출되는 컨트롤을 성공적인 컨트롤이라고합니다.

형태가 하나 이상의에만 제출 활성화 버튼이 성공, 버튼을 제출이 포함 된 경우

.

+13

사용자가 단추를 누르는 대신 Enter 단추를 누르면 양식의 첫 번째 제출 단추가 활성 단추가됩니다. – Scharrels

+4

아니요, 실제로이 동작에 의존 할 수 없습니다.IE6에서는 제출 된 두 버튼의 가치를 알게 될 것입니다. 표준이 제대로 구현되지 않았기 때문입니다. – Erik

+0

Sh * t. 내가 뭘하니, 에릭? – bodacydo

3

이 동작을 신뢰할 수 있습니다. 당신은 입력의 가치를 얻습니다. javascript을 사용하여 숨겨진 양식 값을 전환 할 수 있지만, 아무런 언급이 없으므로 javascript 여러 선택 항목이 없습니다.

표준입니다. input 태그이므로 value이 있으니 value을 제출해야합니다.

4

그래, 당신은 그 행동에 의존 할 수 있습니다.

<input type="submit" name="queue" value="Queue item">을 클릭하면 "대기열"필드가 설정되고 "제출"필드는 표시되지 않습니다.

반면 다른 하나를 클릭하면 '제출'입력란이 설정되고 '대기열'은 표시되지 않습니다.

이것이 확실하지 않은 경우 두 가지 형식으로 나누어 작업 할 수 있습니다.

0

양식을 두 개의 양식으로 분할하여 다른 작업에서 필요한 다른 입력을 복제하십시오. 또는 사용자가 항목 대기열 대 제출 여부를 실제로 알고 싶다면 제출 단추와 라디오 단추를 모두 라디오 선택으로 변경하여 두 가지 옵션간에 전환하고 새 "별도의 양식 제출"단추를 갖습니다.

그런 상황에서 원 클릭 옵션을 원한다면 Javascript를 사용하여 라디오 버튼 중 하나가 선택되면이를 감지하고 즉시 폼을 자동 제출할 수 있습니다. (양식 처리가 아닌 사용자 인터페이스에 Javascript 사용)