태그 showMessage.jsp
만 사용하여 POST 양식을 제출하려면 어떻게해야 <a href="...">
합니까?
<form action="showMessage.jsp" method="post">
<a href="showMessage.jsp"><%=n%></a>
<input type="hidden" name="mess" value=<%=n%>/>
</form>
답변:
대신 버튼을 사용하는 경우 JavaScript가 필요하지 않습니다.
<form action="your_url" method="post">
<button type="submit" name="your_name" value="your_value" class="btn-link">Go</button>
</form>
링크처럼 보이도록 버튼 스타일을 지정할 수 있습니다 . 예를 들면 다음과 같습니다.
.btn-link {
border: none;
outline: none;
background: none;
cursor: pointer;
color: #0000EE;
padding: 0;
text-decoration: underline;
font-family: inherit;
font-size: inherit;
}
a
태그를 사용하지 않기 때문 입니다.
button
를 사용할 때 IE는 당신 3D "를 눌러"효과를 강제로 : button
사용하여 쉽게 피할 수있다, a
. 을 display: inline-table
사용 하여 단추 스타일을 지정하는 경우 a
의 일반적인 해결 방법이 position: relative
작동하지 않으므로이 효과를 피할 수있는 유일한 방법은를 사용하는 것입니다.
MVC를 사용하여 수행하는 경우 다음과 같이해야합니다.
<form action="/ControllerName/ActionName" method="post">
<a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
<input type="hidden" name="mess" value=<%=n%>/>
</form>
나는 단지 여기에 몇 가지 예를 살펴 보았고 그것을 게시하는 것이 아프지 않을 것이라고 생각한 MVC를 보지 못했습니다.
그런 다음 컨트롤러의 액션에서 <HTTPPost>
맨 위에 놓을 것입니다. 나는 당신이 <HTTPGET>
그 위에 있지 않으면 여전히 작동하지만 명시 적으로 거기에 두는 것이 조금 더 안전하다고 생각합니다.
실제로 <a href= ..
POST 메서드로 속일 방법이없는 것 같습니다 . 그러나 페이지의 CSS에 대한 액세스 권한이있는 경우 대신 양식을 사용하여 대체 할 수 있습니다.
안타깝게도 CSS에서 버튼을 앵커 태그로 스타일링하는 명백한 방법은 브라우저 간 호환이되지 않습니다 <button value= ...
. 다른 브라우저는 다르게 취급하기 때문입니다.
Incorrect:
<form action='actbusy.php' method='post'>
<button type='submit' name='parameter' value='One'>Two</button>
</form>
위의 예는 FireFox에서 'Two'를 표시하고 'parameter : One'을 전송하는 반면, IE8에서는 'One'을 표시하고 'parameter : One'도 전송합니다.
방법은 데이터를 전달하기 위해 숨겨진 입력 필드를 사용하고 제출하기 위해 버튼을 사용하는 것입니다.
<form action='actbusy.php' method='post'>
<input class=hidden name='parameter' value='blaah'>
<button type='submit' name='delete' value='Delete'>Delete</button>
</form>
이 메서드는 'parameter : blaah'외에도 POST에서 잉여 매개 변수로 'delete : Delete'를 전달하는 부작용이 있습니다.
(위에서 언급했듯이) 일부 브라우저는 하나를 표시하고 일부는 버튼 레이블로 표시하기 때문에 버튼에 대해 값 속성과 태그 사이의 버튼 레이블을 동일하게 유지하려고합니다 (이 경우 '삭제').
<button value="Bad">Good</button>
IE7에서 시도한 결과 "Good"이 표시됩니다.