2016-09-26 2 views
-2

자바 스크립트를 통해 일부 코드의 유효성을 검사하려고합니다. 나는 데 드라마는 내가 자바 스크립트에 새로운 오전과 어떻게 미래의 코딩 프로젝트에서이를 방지하기 위해 이런 이유에 대한 완전한 이해를 얻으려고 노력하고설정할 수 없습니다. 정의되지 않음 - JS

"Uncaught TypeError: Cannot set property 'border' of undefined".

를받을 수 있습니다. 유효성 검사가 실패하면 텍스트 상자 테두리가 빨간색으로 변경됩니다.

function validation_Step1(event) { 
    var Firstbox = document.getElementsByName("Firstbox"); 

    if (Firstbox.value == null || Firstbox.value == '') { 
     document.getElementsByName("Firstbox") 
      .style.border = "2px solid red"; 
     alert("Error"); 
     return false; 
    } else { 
     return true; 
    } 
} 
+6

getElementsByName은 단일 요소이지만 NodeList를 반환하지 않으므로 색인 표기법을 사용하여 개별적으로 요소 내부에 액세스해야합니다. – CBroe

+0

['getElementsByName'] (https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByName) 노드 목록을 반환합니다 ... – Rayon

+0

은 속성 이름이 'Firstbox' 인 요소입니다. ? –

답변

1

document.getElementsByName("Firstbox") 배열은 "종류"로 볼 수있는 NodeList을 반환 때문입니다.

+0

_ "배열을 반환합니다"_? 아니, 배열이 아니다 – Rayon

+0

그것이 반환하는 객체는 배열과 공통점이 많지만 분명히 하나가 아니다. – Quentin

+0

좋습니다, NodeList입니다.하지만 초보자에게는 그 차이가별로 의미가 없습니다. 어쨌든, 좀 더 구체적으로 대답을 바꿀 것입니다. – Molochdaa

-2

요소는 ID를 사용 찾으려면 첫 번째 요소를 조작하려는 경우가 document.getElementsByName("Firstbox")[0]을 수행해야합니다

<input type="text" id="login"> 

그런 요소 얻을 : 또한

var elem = document.getElementById('login'); 

JS 스크립트를 실행을 전체 HTML이로드되면 JS에서 onload 이벤트를 사용하십시오.

관련 문제