Programing

JavaScript는 이름으로 요소를 가져옵니다.

lottogame 2020. 7. 18. 10:26
반응형

JavaScript는 이름으로 요소를 가져옵니다.


이 기능을 고려하십시오.

function validate()
{
  var acc = document.getElementsByName('acc').value;
  var pass = document.getElementsByName('pass').value;

  alert (acc);
}

그리고이 HTML 부분 :

<table border="0" cellpadding="2" cellspacing="0" valign="top">
    <tr>
        <td class="td1">Account</td>
        <td class="td2"><input type="text" name="acc" /></td>
    </tr>
    <tr class="td1">
        <td>Password</td>
        <td class="td2"><input type="password" name="pass" /></td>
    </tr>
</table>
<div><button onClick="validate()" class="cupid-greenx">Login now</button></div>

경고 상자가 표시되지만 "정의되지 않음"이 표시됩니다.


document.getElementsByName속성이없는 요소의 NodeList를 리턴합니다 .value. 따라서 정의되지 않은 오류가 표시됩니다.

당신이 원하는 것은 document.getElementsByName("acc")[0].value


이 방법에서 복수형에 유의하십시오.

document.getElementsByName()

그러면 요소 배열이 반환되므로 [0]을 사용하여 첫 번째 항목을 가져옵니다. 예 :

document.getElementsByName()[0]

당신은 이것을 원합니다 :

function validate() {
    var acc = document.getElementsByName('acc')[0].value;
    var pass = document.getElementsByName('pass')[0].value;

    alert (acc);
}

document.getElementsByName 메소드는 요소의 배열을 리턴합니다. 예를 들어 먼저 선택해야합니다.

document.getElementsByName('acc')[0].value

document.getElementsByName("myInput")[0].value;

참고 URL : https://stackoverflow.com/questions/10306129/javascript-get-element-by-name

반응형