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>