我有一个包含一系列输入字段的表单,我还使用javascript动态地将输入字段添加到此表单中。我也尝试使用以下代码动态删除这些元素:
var catchMarkers = [];
var fishingtripMarker;
var catchIdCounter = 0;
function placeCatchMarker(position)
{
catchMarker = new google.maps.Marker({
position: position,
map: map,
draggable: true,
animation: google.maps.Animation.DROP
});
catchMarker.set("id", catchIdCounter);
AddCatchInput(catchIdCounter);
catchIdCounter++;
//Right click listener
markerListener = google.maps.event.addListener(catchMarker, 'rightclick', function(event) {
//removing inputs from form
var fish = document.getElementById('Fish'+this.get("id"));
var weight = document.getElementById('Weight'+this.get("id"));
fish.parentNode.removeChild(fish);
weight.parentNode.removeChild(weight);
//removing marker
this.setMap(null);
var index = catchMarkers.indexOf(this);
catchMarkers.splice(index, 1);
});
catchMarkers.push(catchMarker);
}
我使用以下代码创建这些输入字段:
function AddCatchInput($id)
{
var container = document.getElementById("myform");
var select = document.createElement("select");
select.setAttribute("id", "Fish"+$id);
var option;
option = document.createElement("option");
option.setAttribute("value", "1");
option.innerHTML = "Trout";
select.appendChild(option);
var input = document.createElement("input");
input.id = "Weight" + $id;
container.appendChild(select);
container.appendChild(input);
}
一切正常,直到我尝试在任何表单输入字段具有值时删除这些输入字段,然后网站崩溃,我无法找出原因。
答案 0 :(得分:0)
这显然是与右键单击事件相关的错误(在chrome中)。
问题不在于输入有值,当右键单击标记时输入具有焦点时会发生这种情况,崩溃演示:http://jsfiddle.net/doktormolle/57V72/
可能的解决方案:在右键点击之前从输入中移除焦点,例如onmousedown事件:
google.maps.event.addListener(catchMarker, 'mousedown', function (event) {
document.getElementById('Weight' + this.get("id")).blur();
});
演示没有崩溃:http://jsfiddle.net/doktormolle/57V72/1/
你应该报告这个错误。