2010-03-06 6 views
3

이있는 website에서 작업하고 있습니다. 나는 (양식의 제출을하게됩니다 그것을 클릭하고 다른 페이지로 이동) 링크 역할을하도록 div의 페이지 영역 모두를 원했다 그래서 나는 그 div에 속성 추가 :div의 하위 항목에서 'onclick'명령을 제거하십시오.

<div class="box1" onclick="javascript:document.forms['womenForm'].submit();" ...> 

모든 것 이 영역에서 shuold는 다음 페이지로 연결 을 제외하고이 div 안에 있지만 다음 페이지로 이동하지 않고 클릭 할 수 있어야합니다.

어떻게해야합니까? 선택한 요소를 div로 감싸려고했는데 href="" 또는 onclick=""이었지만 여전히 양식이 제출되었습니다.

아무도 해결할 수 있습니까?

답변

4
당신은 이벤트까지 계층 구조의 버블을 중지해야

...

onclick="event.cancelBubble=true;if(event.stopPropagation) event.stopPropagation();return false;" select 요소에서.

+0

실제로 작동했습니다. – Spiderman

1

먼저 "onclick"속성을 사용하기 때문에 의사 프로토콜은 javascript: 코드에서 불필요합니다.

인라인 JavaScript에서 벗어나보다 수용 가능한 unobtrusive JavaScript 세계로 나아가는 것이 좋습니다.

어쨌든 원하는 것은 <select> 요소에서 이벤트가 실행되지 않았는지 확인하는 것입니다. 눈에 거슬리지 JS와 함께 그는 다음과 같이 갈 것이다 다음은 onclick을 당신이 할 수있는 속성을 사용하여

someElement.onclick = function(e) { 
    var target = e ? e.target : event.srcElement; 
    if (!/option|select/i.test(target.nodeName)) { 
     // do stuff. 
    } 
}; 
+0

이 가장 간단한 방법입니까? 하위 요소에서 HTML 정의의 일부로 상위 perents의 특성을 제거 할 수 있습니까? – Spiderman

관련 문제