특별한 HTML 요소 중 하나인 폼에 대해서 알아보자
namedItem()
document.forms[0]
: HTMLCollection과 마찬가지document.forms.userinfo
: 이름
원래 : document.forms.userinfo.elements.userid
허용: document.forms.userinfo.userid
문제점: DOM 요소에 접근해서 name 속성을 변경해도 변경전 이름을 계속 사용할 수 있다.
예시
<form id="userinfo" name="userinfo">
<input id="userid" name="userid" />
<input id="username" name="username" />
</form>
const usernameEl = document.querySelector("#username");
usernameEl.name = "usernameNew";
console.log(
document.forms.userinfo.username
=== document.forms.userinfo.usernameNew
);
// > true
왜 이런 현상이 생겼을까??