2012-08-29 50 views
2

解決方案:放置一個JavaScript事件動態加載的PHP形式

感謝Shmiddty,我想通了這一點:

$(static parent element).on('submit', '#add_client', function(e) { 
    e.preventDefault(); 
    firm.addUser($(this), '/ci/firm/add_client', 'client'); 
}); 

說明:

我建立某種形式的一個客戶。我希望根據他點擊的鏈接動態創建此表單。這個表格將會被一些數據自動填充。

這裏是jQuery將創建動態內容:

$('.create').on('click', function(e) { 
    e.preventDefault(); 
    utility.create_modal(); // dynamic div with form 
}); 

這是創建DIV功能,並放置在htmlPHP形式:

$(document.createElement('div')).attr({ 
    'class' : 'span3' 
}).html(create_div('/ci/firm/return_user_form/client', 'html')), 

這裏是ajax功能:

var result = ''; 
$.ajax({ 
    url: path, 
    type: 'get', 
    dataType: type, 
    async : false, 
    success: function(data) { 
     result = data; 
    } 
    }); 
return result; 

這是從PHP文件拉到HTML:(這是一個巨大的形式,我只是要包括有問題的按鈕)

<input type="submit" name="submit" value="Add Client" id="add_client"> 

問題:

這種動態html內容有一種形式。我想要在我包括的表單上放置一個JavaScript事件。這可能嗎?如果是這樣,我該怎麼做?

這不起作用(#add_client是按鈕的形式的ID):

$('#add_client').on('click', function(e) { 
    e.preventDefault(); 
}); 
+0

請顯示生成的實際HTML。 –

回答

2
$('some_parent_selector').on('click', '#add_client', function(e) { 
    e.preventDefault(); 
}); 

on監聽器需要一個父對象(非動態)來監聽click事件那起泡。然後,當事件冒泡到父母身上時,它會確定它是否源自'#add_client',如果是,它會調用您的匿名函數。

+0

我討厭花10分鐘寫一個問題,並在2回答....哈哈,非常感謝你親切的先生! – Phil