Jquery Js代码未使用ajax加载的内容执行
我使用TwitterBootstrapModale来显示由ajax加载的表单 我点击按钮显示modale,顺便说一句,它将通过ajax获取其内容:Jquery Js代码未使用ajax加载的内容执行,jquery,ajax,forms,modal-dialog,Jquery,Ajax,Forms,Modal Dialog,我使用TwitterBootstrapModale来显示由ajax加载的表单 我点击按钮显示modale,顺便说一句,它将通过ajax获取其内容: $('#team_join_modale_show').on('click', function(e) { e.preventDefault(); var href = $(e.target).attr('href'); $.get(href, function(data) { $(data).modal()
$('#team_join_modale_show').on('click', function(e) {
e.preventDefault();
var href = $(e.target).attr('href');
$.get(href, function(data) {
$(data).modal();
});
});
然后,将显示名为“#team_join_modal”的modale(这以前不在DOM中)。上面有一个表格“#ajax_form_team_join”
问题在于代码片段$('ajax_form_team_join').ajaxForm();从未执行,因此我的表单无法正常工作。
我已尝试将事件accross my js、changed.on、to.live、new method.on移动,但没有结果。我错过了什么
$('#team_join_modale_show').on('click', function(e){
e.preventDefault();
var href = $(e.target).attr('href');
$.get(href, function(data) {
$(data).modal();
});
$('#ajax_form_team_join').ajaxForm({
target:'#errorTeamJoin',
clearForm: true
});
});
试试这个。您可以立即在success AJAX函数中绑定事件
$('#team_join_modale_show').on('click', function(e) {
e.preventDefault();
var href = $(e.target).attr('href');
$.get(href, function(data) {
var $data = $(data);
$data
.on('shown', function () {
$('#ajax_form_team_join', $data).ajaxForm({
target: '#errorTeamJoin',
clearForm: true
});
})
.modal();
});
});
不过,这可以进行更好的重构。当你说
$(“#ajax\u form\u team\u join”).ajaxForm()
从未执行过,实际上你的意思是显示的事件从未触发过,对吗?@Alexander Yeah举例来说,事件没有触发。这没有考虑到$的异步性。get
请求。
$('#team_join_modale_show').on('click', function(e) {
e.preventDefault();
var href = $(e.target).attr('href');
$.get(href, function(data) {
var $data = $(data);
$data
.on('shown', function () {
$('#ajax_form_team_join', $data).ajaxForm({
target: '#errorTeamJoin',
clearForm: true
});
})
.modal();
});
});