일반 링크를 사용하여 양식을 제출하십시오.


130

양식을 제출하고 싶습니다. 그러나 나는 형식을 제출와 입력 버튼을 사용하는 기본적인 방법이지만 않을거야 링크를.

아래 이미지는 이유를 보여줍니다. 양식을 저장 / 제출하기 위해 이미지 링크를 사용하고 있습니다. 이미지 링크에 대한 표준 CSS 마크 업이 있기 때문에 입력 제출 버튼을 사용하고 싶지 않습니다.

onClick = "document.formName.submit ()" 을 요소 에 적용하려고했지만 html 메소드를 선호합니다.

대체 텍스트

어떤 아이디어?


3
버튼을 사용하고 이미지를 표시하거나 자바 스크립트를 사용하여 CSS를 사용하면 javascript없이 양식을 제출하는 간단한 href를 만들 수있는 실제 방법은 없습니다.
Anton S

불행히도 이것들은 자바 스크립트가없는 쉬운 방법이
아닙니다

4
이것을하는 당신의 이유는 거짓 경제처럼 들립니다. 제출 버튼에 대한 표준 CSS를 생각해 내고 사용하도록 설계된 방식으로 양식을 사용하는 것이 좋습니다. 버튼 CSS의 기술 더미 여기가 설명합니다 있습니다 : tripwiremagazine.com/2009/06/...
dnagirl

답변:


169

두 가지 방법. 버튼을 만들고 스타일을 지정하여 CSS가있는 링크처럼 보이게하거나 링크를 만들고을 사용하십시오 onclick="this.closest('form').submit();return false;".


55
Aaaaaaaand 다음은 링크로 버튼을 스타일링하는 방법에 대한 참조입니다 : stackoverflow.com/questions/1367409/…
플립 차트

3
참고 form.submit()자바 스크립트없이하지 작업
baptx

3
@baptx도 기존 스마트 폰은 자바 스크립트 활성화
마흐디 Jazini을

2
@MahdiJazini 많은 사람들이 기본적으로 JavaScript를 비활성화하여 방해가 될 수 있으며 경우에 따라 성능에 영향을 줄 수 있습니다. JavaScript가 실패하면 전체 웹 사이트가 중단 될 수 있습니다 (예 : 로컬 폴백없이 CDN 사용 및 타사 도메인이 차단됨). HTML 오류가 있어도 웹 사이트를 계속 사용할 수 있습니다. 개발자는 대신 점진적 향상 원칙을 따라야합니다.
baptx

3
자바 스크립트가없는 사용자를 지원하려면이 답변에 설명 된 첫 번째 옵션을 수행하고 링크와 같은 버튼 스타일을 지정하십시오. 예를 들어 input[type=submit].link { border: none; background: none; display: inline; color: blue; text-decoration: underline; }<input type=submit class="link" />
월 Sverre

87

내가 아는 한, 어떤 형태의 스크립팅 없이는 실제로 이것을 할 수 없습니다.

<form id="my_form">
<!-- Your Form -->    
<a href="javascript:{}" onclick="document.getElementById('my_form').submit(); return false;">submit</a>
</form>

여기 에서 예 .


1
그리고 친애하는 방문자는 ... 이름이 아닌 >>> ID = "my_form"그것의 ID를 설정하는 것을 잊지 마세요 : D
마흐디 Jazini

이것은 최선의 명시 적 답변이어야합니다. 감사합니다!
yehanny

28

input type="submit"이와 같은 스타일링은 저에게 효과적이었습니다.

.link-button { 
     background: none;
     border: none;
     color: #0066ff;
     text-decoration: underline;
     cursor: pointer; 
}
<input type="submit" class="link-button" />

Chrome, IE 7-9, Firefox에서 테스트


레코드의 경우 : inputHTML 요소에 클래스를 첨부하지 않고 CSS 선택기를 사용하여 적절한 요소를 선택해야합니다 .
Erik Kaplun

귀하의 의견이 선호되는 방식이지만 항상 가능한 것은 아닙니다.
Serj Sagan

왜 그게 선호 되는가?
Mark

그것은 일반적으로 더 깔끔한 HTML을 남겨둔, 준 확립 된 코딩 관행입니다 ... 그러나 큰 문제는 아닙니다
Serj Sagan

1
이 답변은 자바 스크립트에 의존하지 않습니다. 걱정하지 않아도됩니다.
Matthew Lock


5

사용하다:

<input type="image" src=".."/>

또는:

<button type="send"><img src=".."/> + any html code</button>

일부 CSS


0

확실히, 링크 ( a) 태그가 있는 양식을 제출하는 순수한 HTML 솔루션은 없습니다 . 표준 HTML은 버튼이나 이미지 만 허용합니다. 다른 공동 작업자가 말했듯이 버튼을 사용하여 링크 모양을 시뮬레이트 할 수는 있지만 질문의 목적이 아닌 것 같습니다.

IMHO, 나는 제안되고 수용 된 해결책이 효과가 없다고 생각합니다.

양식에서 테스트했지만 브라우저가 양식에 대한 참조를 찾지 못했습니다.

따라서 this클릭해야하는 요소 (형식의 하위 노드)를 참조하는 객체를 사용하여 제출해야하는 한 줄의 JavaScript를 사용하여 이를 해결할 수 있습니다. this.parentNode폼 노드도 마찬가지 입니다. submit()그 형식으로 메소드를 호출 한 후 . 올바른 양식을 찾기 위해 전체 문서를 조사 할 필요는 없습니다.

<form action="http://www.greatsolutions.com.br/indexint.htm"                   
   method="get">
    <h3> Enter your name</h3>
    First Name <input type="text"  name="fname"  size="30"><br>
    Last Name <input type="text" name="lname" size="30"><br>
    <a href="#" onclick="this.parentNode.submit();"> Submit here</a>
</form>

내 이름으로 입력한다고 가정 해보십시오.

채워진 양식

get제출 후로드 된 페이지의 URL에서 올바른 매개 변수를 볼 수 있기 때문에 양식 메소드 속성에 사용 했습니다.

http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum

이 솔루션은 onclick이벤트 또는 유사한 이벤트 를 허용하는 모든 태그에 적용됩니다 .

this직접 사용하거나 함수의 인수로 전달할 수있는 event변수 (모든 주요 브라우저 및 IE9 이상에서 사용 가능) 와 함께 컨텍스트를 복구하는 데 탁월한 선택 입니다.

이 경우 이벤트를 시작한 요소를 나타내는 a특성을 사용하여 아래 행으로 태그를 사용하여 행을 대체하십시오 target.

<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>

@Nathan, 나는 글쓰기 연습이별로 없습니다 Stackoverflow. 귀하의 수정 사항이 제 스타일을 개선하는 데 도움이되기를 바랍니다. 나의 영어도 좋지 않다.
Paulo Buchsbaum

0

OnClick = "document.getElementById ( 'formID_NOT_NAME'). SUBMIT ()"를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.