Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用元素ID访问本地javascript的对象值_Javascript_Target_Event Listener_Object Literal - Fatal编程技术网

尝试使用元素ID访问本地javascript的对象值

尝试使用元素ID访问本地javascript的对象值,javascript,target,event-listener,object-literal,Javascript,Target,Event Listener,Object Literal,我正在尝试编写一些代码来验证表单。我只想使用原生js(即没有jQuery等),此外,我想避开内联事件 表格(简化版)如下所示: <body onload="addListener()"> <div class="center"> <form method="get" name="signUpForm"> <input type="text" id="firstName"><br /> <in

我正在尝试编写一些代码来验证表单。我只想使用原生js(即没有jQuery等),此外,我想避开内联事件

表格(简化版)如下所示:

<body onload="addListener()">
<div class="center">
    <form method="get" name="signUpForm">
        <input type="text" id="firstName"><br />
        <input type="text" id="lastName"><br />
        <input type="text" id="age"><br />
        <input type="submit" value="Submit">
    </form>
</div>
我现在想做的是使用触发事件的字段的id来访问field对象中包含的信息

到目前为止,我编写的两个非常简单的函数如下:

function addListener(){
    document.body.addEventListener('keyup', eventIdentify);
}

function eventIdentify(){
    var target = event.target || event.srcElement;
    var id = target.id
    console.log(id.maxlength);
}
然而,在这种情况下,id.maxlength会一直返回未定义

如果我用“console.log(firstName.maxlength);”来尝试它,那么这很好,但显然这不符合要点。不确定这里发生了什么,我怀疑这与用来引用两个不同事物(元素id和对象)的id有关,但我对这一点非常陌生,也不确定

如果有人能给我指出正确的方向,我将不胜感激

提前谢谢
Stef

target.id
是一个字符串,因此它没有
maxlength
属性。快速解决方案是访问名为您的id的de变量:

console.log(window[target.id].maxlength)
不过,更好的方法是创建一个对象并包含您已经拥有的其他对象:

var obj={};
obj.firstName=firstName;
然后你可以做:

console.log(obj[target.id].maxlength)
console.log(obj[target.id].maxlength)