readonly특정에 <input>어떻게 추가 할 수 있습니까? .attr('readonly')작동하지 않습니다.
readonly특정에 <input>어떻게 추가 할 수 있습니까? .attr('readonly')작동하지 않습니다.
답변:
jQuery <1.9
$('#inputId').attr('readonly', true);
jQuery 1.9 이상
$('#inputId').prop('readonly', true);
prop과 attr의 차이점에 대해서 더 읽어보세요.
사용 ) ($ .prop를
$("#descrip").prop("readonly",true);
$("#descrip").prop("readonly",false);
$.prop(): Prop은 readonly 속성을 공백 / 빈 문자열로 설정하므로 속성 선택기를 사용하는 CSS가있는 [readonly="readonly"]경우이를 변경해야합니다 [readonly](또는 둘 다 포함).
읽기 전용은 html에 정의 된 속성이므로 속성처럼 취급하십시오.
편집 할 수없는 작업을하려면 작업중인 객체에 readonly = "readonly"와 같은 것이 있어야합니다. 그리고 다시 편집 할 수있게하려면 readonly =``와 같은 것이 없습니다 (올바르게 이해하면 표준이 아닙니다). 속성을 전체적으로 제거해야합니다.
따라서 jquery를 사용하여 추가하고 제거하는 것이 합리적입니다.
읽기 전용으로 설정하십시오.
$("#someId").attr('readonly', 'readonly');
읽기 전용을 제거하십시오.
$("#someId").removeAttr('readonly');
이것이 실제로 나를 위해 일한 유일한 대안이었습니다. 그것이 도움이되기를 바랍니다!
.attr('readonly', 'readonly')트릭을해야합니다. 당신은 .attr('readonly')단지 그것을 하나를 설정하지 않고, 값을 반환합니다.
.attr값은 JQuery와 문서에 따르면, 문자열이나 숫자가 아닌 부울이어야한다 : api.jquery.com/attr/#attr2 또한, HTML "부울 속성"은 빈 문자열 또는 속성의 값이어야합니다. 나는 해결책이 .prop()혼란을 피하기 위해 사용 하는 것이라고 생각합니다 .
"disabled"는 POST에서 입력이 전송되는 것을 제외한다고 생각합니다.
읽기 전용을 활성화하려면 :
$("#descrip").attr("readonly","true");
읽기 전용 비활성화
$("#descrip").attr("readonly","");
setAttribute 속성을 사용하십시오. 예를 들어 1을 선택하면 텍스트 상자에 읽기 전용 속성을 적용하고 그렇지 않으면 읽기 전용 속성을 제거하십시오.
http://jsfiddle.net/baqxz7ym/2/
document.getElementById("box1").onchange = function(){
if(document.getElementById("box1").value == 1) {
document.getElementById("codigo").setAttribute("readonly", true);
} else {
document.getElementById("codigo").removeAttribute("readonly");
}
};
<input type="text" name="codigo" id="codigo"/>
<select id="box1">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>