2012-06-27 2 views
2

방금 ​​<button>에 대한 onclick 이벤트가 <form> 태그 트리거 내에 배치 될 때마다 양식은 <input type='submit'>을 클릭 한 것처럼 데이터를 제출합니다. 나는 그것을 원하지 않는다. 내 양식 내의 버튼은 다른 작업을 수행하며, 양식 중 하나를 클릭하면 양식이 데이터를 제출해서는 안됩니다. Onclick이 양식 데이터 제출을 트리거해서는 안됩니다.

더 명확하게하기 위해, 나는이 코드를 원하는 : "안녕하세요"

<form action="http://www.google.com" method="POST"> 
    <button onclick="alert('hi!')">Button</button> 
    <br> 
    <input type="submit" value="submit"/> 
</form> 

이 경고를 표시하기를 버튼을 클릭하면 그 후에 Google이 열리지 않습니다. '제출'을 누르면 Google에만 표시됩니다.

+0

Esailija, 내가 여기에 게시하기 전에 Chrome에서 테스트했기 때문에 브라우저에 따라 달라지며 Google에 제대로 전달됩니다. – Alehar

+0

네, 방금 다른 브라우저가 당신이 그것을 지정하지 않았기 때문에 다른 타입을 추측 할 수 있다는 것을 깨달았습니다 – Esailija

+0

[HTML 버튼을 사용하여 폼을 제출하지 마십시오] (http://stackoverflow.com/questions/2825856/html-button) -to-not-submit-form) –

답변

7

type="button"을 지정

<button type="button" onclick="alert('hi!')">Button</button> 

을 링크 된 기사에서 :

이 [제출] 속성이

를 지정하지 않은 경우 기본값입니다
+0

두 답이 모두 잘 맞았습니다. 감사합니다. 나는 이것이 내가 왜 그 문제를 처음부터 가지고 있었는지 이해하는 데 도움이되기 때문에 이것이 최선이라고 생각한다. – Alehar

+1

@Alehar javascript를 사용할 수없는 경우에도 @ returnhole이 자바 스크립트에 종속되어 있기 때문에 @Alehar이 작업을 수행해야합니다 (양식을 제출하지 않는 버튼) – Esailija

+0

죄송합니다.이 질문을 볼 수 없습니다. 그러므로 나에게서 +1 – Houman

2

이 시도 ..

onclick="alert('hi!'); return false;" 
1

jQuery는 입력이 아닌 스팬을 사용하므로 .button 호출을 사용하고 클릭 이벤트를 설정하십시오.

관련 문제