javascript地图对象删除不起作用

时间:2016-11-16 21:18:17

标签: javascript arrays javascript-objects

这不是实际情况,但我必须结合map对象使用check函数。

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="" method="post" onsubmit="return check()">
<input type="text" name="name" id="one" oninput="change(this)" />
<input type="text" name="password" id="two" oninput="change(this)" />
<input type="submit" name="submit" value="submit" />
</form>
<script type="text/javascript">
var map = new Map();
function change(obj){
    var id = obj.id;
    if(obj.value != ""){
        map.set(id,obj.value);
        console.log("added key "+obj.id+" value "+obj.value+" size "+map.size);
    }else{
        map.delete[id];
        console.log("removed key "+obj.id+" value "+obj.value+" size "+map.size);
    }
}

function check(){
    if(map.size != 2){
        alert("enter all values");
        return false;
    }
}
</script>
</body>
</html>

表格标签中的操作有意为空

使用上面的代码,当我在任何一个文本框中输入值时,该值将添加到地图中,但是当我再次清除它时,值对不会从地图中删除。删除它时,地图的大小不会减少(或者可能是对象未被删除)。因此,一旦我在输入内容后清除字段,地图的大小将保持为2并且提交在没有任何警报的情况下发生。帮我。逻辑,我必须在其他地方使用它来使其工作。提前谢谢。

1 个答案:

答案 0 :(得分:1)

Map.prototype.delete()是一个函数,需要通过在圆括号()中传递参数来调用,而不是方括号[]

map.delete(id);