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 중국어 웹사이트의 기타 관련 기사를 참조하세요!