2014-04-18 22 views
1

我有一个包含一系列输入字段的表单,我也用这个表单动态地添加了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); 

}

我创建这些inputfields与此代码:

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); 
} 

一切工作正常,直到我尝试删除这些输入字段,当任何形式inputfields有值,然后站点崩溃,我不知道为什么。

+1

更好地检查浏览器控制台是否有任何错误。 – Praveen

+0

请定义'崩溃' – jkw4703

+0

你能发布一个完整的代码示例,允许我们重现此问题吗?并尽可能以jsFiddle.net为例。 – j08691

回答

0

这显然是一个与右键点击事件相关的bug(在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/

你应该报告这一缺陷。

+0

我一定会尽快尝试,只要我可以接受这个答案,如果它的工作!感谢您的答案:) – Marcus

+0

它阻止网站崩溃,但它使得我不能拖动标记了,我不能找出另一种方式来做到这一点。 – Marcus

+0

你也不能拖动我的演示中的标记? –