code

자바스크립트 get element by name

starcafe 2023. 10. 20. 13:52
반응형

자바스크립트 get element by name

다음 기능을 고려합니다.

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답례품 aNodeList요소의그리고 a.NodeList원소들 중에 a가 없는 것은.value소유물.

대신 사용:

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

여기에 있는 모든 답변은 구식으로 보입니다.지금 바로 사용하시기 바랍니다.

document.querySelector("[name='acc']");
document.querySelector("[name='pass']")

이 방법에서 복수형을 주목합니다.

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;

완성도를 위해 이 글을 읽는 다른 사람들이 안전망에 대해 좋은 생각을 할 수 있도록 하기 위해, 특히 원하는 요소를 얻을 수 있다는 보장 없이 null cales를 사용하여 누락된 값을 테스트하여 기본값을 설정할 수 있습니다.

const accElements = document.getElementsByName('acc');
const accElement = accElements[0] ?? null; // Or some other value
if (!accElement) {
    // handle the problem
}

연결된 개체일 때(배열/노드가 반환되지 않을 때) 옵션 체인을 사용합니다.

const acc = document.getElementById('acc')?.value ?? null; // Or some other value

그리고 또.name속성이 사용 가능한 전부인 경우가 있습니다. 사용해 보십시오.id가능한 한 그들이 독특할 가능성이 더 많기 때문입니다.원하는 요소가 결과 인덱스 0에 있다고 가정합니다([0])는 보통 안전하지만 확인하고 확인하는 것이 좋습니다.몇 줄의 코드(로깅이 있을 수도 있음)에 대해서는 최종 사용자에게 고장 문제를 저장할 수 있습니다.

입력이 많은 경우 다음을 시도해 볼 수 있습니다.

<input type="text" name="unitOfAttachService">
<input type="text" name="unitOfAttachService">
<input type="text" name="unitOfAttachService">

이 선은 태그 입력의 모든 값을 얻는 데 사용됩니다.

let unitOfAttachService =document.getElementsByName("unitOfAttachService");

이것이 그것을 목록에서 빼내고 사용하는 방법입니다.

for (let k = 0; k < unitOfAttachService .length; k++) {
  unitOfAttachService[k].value;}

언급URL : https://stackoverflow.com/questions/10306129/javascript-get-element-by-name

반응형