我使用JQuery来处理所有表单提交,它们都运行良好。但我似乎无法使用动态生成(Googlemap的标记)InfoWindow中的表单。我应该以不同的方式使用它吗?也许用$(document).on
来捕获提交?
这是捕获表单提交的代码:
$(function() {
$('#new_marker').submit(function(e) {
e.preventDefault();
$.post($("#new_marker").attr("action"), $("#new_marker").serialize(), function(data) {
var json = myParseJSON( data );
if( json.status=="success" ) {
location.href = site_root+'map/modify_marker/'+json.marker_id;
} else {
new Messi( json.msg, {title: 'Oops...', titleClass: 'anim error', buttons: [{id: 0, label: 'Fechar', val: 'X'}]});
}
}).fail( function() { general_error(); } );
return false;
});
});
正如我所说,对于我的所有其他表单,代码就像这样,但不是InfoWindow中的new_marker
表单。它基本上只是在不知道Jquery代码的情况下将表单发布到操作中。
这是我用来将内容加载到InfowWindow的代码:
function newmarker_infowindow_content(lat, long, infowindow) {
$.ajax({
url: site_root +'map/newmarker_infowindow/' + lat +'/' +long,
success: function(data){
infowindow.setContent(data);
processInLineLabels();
}
});
}
答案 0 :(得分:1)
由于表单在页面加载时不可用...您需要将提交处理程序委托给页面中的永久资产。最接近的是插入地图的元素,但也可以使用document
。
$('#MapDivID').on('submit', '#new_marker', function(e){
e.preventDefault();
/* do ajax*/
})
详细了解jQuery on() docs
中的活动授权