2011-08-30 40 views
0

我有這個網站,如果它是在頁面加載時,其工作原理:內聯onclick事件不工作的Ajax響應

<input type="checkbox" name="originBusDock" value="Y" /> 
<label for="originBusDock" onclick="document.booking.originBusDock.checked=(!document.booking.originBusDock.checked);">Loading Dock</label> 

如果我的標籤,複選框上點擊旁邊的檢查,如果我再次點擊,它取消選中。

我的問題是,如果我填充一個空的div與來自AJAX調用的響應數據與此相同的代碼,onclick事件不起作用。 看來我必須「重新綁定到DOM」?從我能找到的東西,但如何做到這一點? 複選框的數量是可變的,它們都有不同的名稱。從原始頁面加載的頁面中還有其他複選框,我不想影響。 我已經看到這個:onclick event on Ajax output但它使用了一個固定的ID,我不會事先知道ID名稱是什麼,因爲它是在AJAX調用中動態生成的。 希望是有道理的。 TIA

回答

1

標籤貼在基礎上id屬性,而不是name其他元素,所以如果你要確保你的投入有一個id如下:

<input type="checkbox" id="originBusDock" name="originBusDock" value="Y" /> 
<label for="originBusDock">Loading Dock</label> 

......那麼你不應該需要所有的onclick事件 - 點擊標籤將自動切換相關的複選框。

+0

我以爲我試過,但我所做的就是: <輸入名稱= 「destinationBusDock」 值= 「Y」 型= 「複選框」> <爲= 「destinationBusDock」 ID = 「destinationBusDock」 標籤>裝卸碼頭 感謝您的輸入 – user596785

+0

其實,雖然這解決了我的問題,但它不能完全回答我的問題。當AJAX響應返回時,如何在onclick中獲得任何內嵌JavaScript運行? – user596785

+0

對不起,我發佈後我意識到我(可能)提供了一個解決方案而沒有真正回答這個問題,但我不確定答案是什麼。我會希望像你的內聯onclick工作,假設它不試圖引用在那個點上不存在的其他元素或東西。我不會使用'document.booking.originBusDock'語法,但我會給它一個id並使用'document.getElementById()'。 – nnnnnn