2010-07-08 3 views
3

두 개의 제출 버튼이있는 양식이 있습니다. 하나는 취소 용이고 다른 하나는 양식 값을 DB에 저장하기위한 것입니다. Enter 키를 누르면 취소 단추가 양식을 제출하는 저장 단추 대신 양식을 제출합니다. Enter 키를 누르면 저장 단추가 양식을 제출하도록하려면 어떻게합니까?두 개의 제출 버튼이있을 때 Enter 키를 사용하여 양식을 잘못 입력했습니다.

감사합니다.

+0

취소 버튼을 사용할 수 있습니다. – Himadri

+0

취소 버튼을 누르면 다른 페이지로 이동해야합니다. 리셋 버튼을 사용하여이를 수행 할 수 있습니까? 감사합니다 –

답변

4

양식에 두 개의 제출 버튼이 없어야합니다. 저장 버튼의 유형이 submit이고 취소 버튼의 유형이 button이어야합니다.

편집 : 내가 제기 한 몇 가지 문제를 해결하기 위해이 답변을 업데이트 할 예정입니다.

HTML 사양 (예 : DTD)에서 볼 수 없었던 두 가지 제출 버튼을 한 가지 양식으로 제출할 수는 없지만 언급 된 OP와 정확히 일치하는 문제는 발생할 수 있습니다. 여기

<input type="button" value="Cancel" onclick="window.location.href='nextpage.html';"/> 

이 하나가 해당 URL로 nextpage.html을 대체 할 것이다 : 자신의 경우,이 솔루션은 유형 버튼의 취소 버튼을 다음과 같은 자바 스크립트에 추가하는 것입니다. 또는 리디렉션이 양식의 동작 인 경우 this.form.action을 새 위치로 지정할 수 있습니다.

OP가 안전하고 JavaScript를 원하지 않으면이 스타일은 아마도 하이퍼 링크 일 수 있습니다.

+1

양식에 여러 개의 제출 버튼이 있어도 무방합니다. 진짜 문제는 브라우저의 엉뚱한 행동입니다. 또한 취소 버튼은 ''버튼이 아닌 경우 양식을 제출하지 않습니다. – zneak

+2

예, DTD에 따라 허용되지만, 브라우저는이 사례를 잘 처리 할 준비가되어 있지 않습니다. 해결책은 하나의 제출 버튼을 유지하고 다른쪽에 JavaScript를 사용하는 것입니다 (꼭 필요한 경우). 아마도 OP는 취소 버튼의 목적을 명확히 할 수 있습니다. – TNi

+0

HTML 사양은 키보드 포커스가 둘 중 하나에 없을 때 여러 제출 버튼에 대한 기본 활성화 순서를 정의하지 않습니다. 포커스가 submit 요소 자체에있을 때만 활성화 동작을 지정합니다. 명시되지 않은 것을 구현하지 않은 브라우저를 비난하지 마십시오. :-) –

관련 문제