>  기사  >  웹 프론트엔드  >  jQuery를 사용하여 입력 필드의 \'유형\'을 비밀번호에서 텍스트로 변경할 수 없는 이유는 무엇입니까?

jQuery를 사용하여 입력 필드의 \'유형\'을 비밀번호에서 텍스트로 변경할 수 없는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 05:08:03613검색

Why Can't I Change an Input Field's 'type' from Password to Text with jQuery?

jQuery를 사용하여 입력 필드 유형 변경: 작동하지 않는 이유

입력 필드를 비밀번호 유형에서 jQuery를 사용하여 텍스트 유형을 사용하면 변경 사항이 적용되지 않는 문제가 발생할 수 있습니다.

문제의 코드는 다음과 같습니다.

$(document).ready(function() {
    // #login-box password field
    $('#password').attr('type', 'text');
    $('#password').val('Password');
});

이 코드는 ID로 입력 필드를 변경하는 것을 목표로 합니다. "password"를 텍스트 필드에 입력한 다음 "Password"라는 텍스트로 채웁니다. 하지만 브라우저의 보안 모델로 인해 실패할 수 있습니다.

Safari에서 테스트하면 유형 속성을 변경할 수 없다는 오류가 표시됩니다. 이는 검사가 포함된 jQuery 소스 코드에서도 지원됩니다.

if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
    throw "type property can't be changed";

이 검사는 Internet Explorer의 입력 필드에 대한 유형 속성이 변경되는 것을 방지합니다. 이것이 버그인지 보안 설계 선택인지는 확실하지 않습니다.

이 문제를 극복하려면 jQuery 대신 기본 DOM 조작을 사용할 수 있습니다. 방법은 다음과 같습니다.

var pass = document.createElement('input');
pass.type = 'password';
document.body.appendChild(pass);
pass.type = 'text';
pass.value = 'Password';

이 코드는 입력 필드를 텍스트 유형으로 성공적으로 변경하고 지정된 값으로 채웁니다.

위 내용은 jQuery를 사용하여 입력 필드의 \'유형\'을 비밀번호에서 텍스트로 변경할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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