>웹 프론트엔드 >JS 튜토리얼 >필드에 입력을 하고 있는데도 JavaScript 입력 값이 항상 비어 있는 이유는 무엇입니까?

필드에 입력을 하고 있는데도 JavaScript 입력 값이 항상 비어 있는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-09 03:43:02359검색

Why is my JavaScript input value always empty, even though I'm typing in the field?

값 함정에 걸렸습니다: JavaScript에서 빈 입력 값 해결

입력 필드에서 값 속성을 검색하려고 할 때 데이터 검색 중에 예상치 못한 오류가 발생할 수 있습니다. 입력한 내용에 관계없이 입력 값이 비어 있습니다. 올바른 입력 필드와 버튼을 성공적으로 타겟팅했다면 수수께끼가 복잡해 보일 수 있습니다.

이 문제의 근본 원인을 살펴보겠습니다. 코드의 inputValue와 같은 JavaScript 변수는 생성 당시 값의 스냅샷을 보유합니다. 따라서 처음에 스크립트를 실행하면 페이지 로드 시 inputValue 변수에 빈 문자열이 할당됩니다.

안타깝게도 이 변수는 입력 필드 값에 대한 후속 수정에도 불구하고 변경되지 않은 상태로 유지됩니다. 이는 JavaScript 문자열이 변경 불가능하고 일단 할당되면 변경할 수 없기 때문입니다. 따라서 입력 필드에서 수행하는 모든 키 입력은 inputValue 변수에 반영되지 않습니다.

문제 해결

이 문제를 극복하려면 두 가지 옵션이 있습니다. :

1. 매번 요소 쿼리:

페이지를 로드하는 동안 변수에 값을 할당하는 대신 버튼을 클릭할 때마다 요소를 쿼리합니다.

const testing = () => {
  const inputValue = document.getElementById("inputField").value;

  alert(inputValue);
};

이 접근 방식은 다음을 보장합니다. inputValue 변수에는 항상 입력 필드에 입력된 최신 값이 포함됩니다.

2. 요소에 대한 참조 사용:

또는 요소에 대한 참조를 유지하고 값 속성을 동적으로 쿼리할 수 있습니다.

const inputElement = document.getElementById("inputField");
const testing = () => alert(inputElement.value);

값 속성을 동적으로 쿼리하면 정적 변수 사용 시 발생할 수 있는 위험을 피하고 현재 입력 값으로 작업하도록 보장하세요.

위 내용은 필드에 입력을 하고 있는데도 JavaScript 입력 값이 항상 비어 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.