jQuery不在InfoWindow中使用表单

时间:2013-12-15 15:12:20

标签: javascript jquery forms google-maps infowindow

我使用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();
    }
});
}

1 个答案:

答案 0 :(得分:1)

由于表单在页面加载时不可用...您需要将提交处理程序委托给页面中的永久资产。最接近的是插入地图的元素,但也可以使用document

$('#MapDivID').on('submit', '#new_marker', function(e){
     e.preventDefault();
     /* do ajax*/
})

详细了解jQuery on() docs

中的活动授权