2010-03-06 20 views
3

我正在致力於website,其中我有一個主要的div。我想所有的div的頁面區域作爲一個鏈接(在其上點擊就會造成一種形式的提交,並移動到另一個頁面),所以我加入到div屬性:從div的孩子中刪除'onclick'命令

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

一切在這個區域將鏈接轉到下一頁,除了這個div內的HTML選項,但應該可以點擊而不移動到下一頁。

我該如何導致這種情況發生?我試圖用div來包裝選定的元素,給它href=""onclick="",但仍然提交表單。

任何人都可以解決這個問題嗎?

回答

4

你需要停止活動了層次結構的冒泡......

onclick="event.cancelBubble=true;if(event.stopPropagation) event.stopPropagation();return false;"在select元素上。

+0

確實有效 – Spiderman

1

首先,javascript:僞協議在您的代碼中是多餘的,因爲您使用的是「onclick」屬性。

我建議不要使用內嵌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定義的一部分嗎? – Spiderman