我已经为用户添加了在我的谷歌地图上添加新的点的能力。我的代码:
GEvent.addListener(map, "click", function(overlay,point) {
if (point) {
var myHtml = '<div id="addpoint"><form id="formadd" name="formadd_point" enctype="multipart/form-data" method="post" action="pointadd.php"><table><tr><td>Place:</td><td>' + point + '</td></tr><tr><td>Name:</td><td><input name="name" type="text" size="32" maxlength="200" /></td></tr><tr><td>Photo (jpg,png:2Mb):</td><td><input type="file" name="image" size="20" accept="image/png,image/jpeg" /></td></tr><tr><td></td><td><input name="pcoord" type="hidden" value="'+point+'" /><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /><input name="subpoint" type="submit" value="Add" /></td></tr></table></form></div>';
map.openInfoWindowHtml(point, myHtml);
$('#formadd').ajaxForm({ beforeSubmit: validate, target:'#addpoint' });
}
});它应该是AJAX post而不需要重新加载。但是它不起作用!我也不知道原因。也许jquery.js和google api有一些冲突?如何在不重新加载页面的情况下提交表单?
发布于 2010-02-05 07:44:30
也许在form html成功添加dom之前,您尝试将eventListener添加到表单中。试试这个:
GEvent.addListener(map, "click", function(overlay,point) {
if (point) {
$('#formadd').live("load", function(){
$(this).ajaxForm({ beforeSubmit: validate, target:'#addpoint' });
});
var myHtml = '<div id="addpoint"><form id="formadd" name="formadd_point" enctype="multipart/form-data" method="post" action="pointadd.php"><table><tr><td>Place:</td><td>' + point + '</td></tr><tr><td>Name:</td><td><input name="name" type="text" size="32" maxlength="200" /></td></tr><tr><td>Photo (jpg,png:2Mb):</td><td><input type="file" name="image" size="20" accept="image/png,image/jpeg" /></td></tr><tr><td></td><td><input name="pcoord" type="hidden" value="'+point+'" /><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /><input name="subpoint" type="submit" value="Add" /></td></tr></table></form></div>';
map.openInfoWindowHtml(point, myHtml);
}
});https://stackoverflow.com/questions/2164911
复制相似问题