[javascript] 자바 스크립트를 사용하여 입력 요소에 비활성화 된 속성 추가
입력 상자가 있고 비활성화하고 동시에 양식을 이식 할 때 문제를 피하기 위해 숨길 수 있기를 원합니다.
지금까지 입력을 숨기려면 다음 코드가 있습니다.
$(".shownextrow").click(function() {
$(this).closest("tr").next().show().find('.longboxsmall').hide();
});
결과적으로 숨겨지는 입력입니다.
<input class="longboxsmall" type="text" />
disabled 속성을 입력에 추가하려면 어떻게해야합니까?
답변
$("input").attr("disabled", true);
현재로서는 더 이상 모르겠습니다.
2013 년 12 월이며 실제로 무엇을 말해야할지 모르겠습니다.
처음에는 항상 그렇고 .attr()
항상 .prop()
그렇습니다. 그래서 나는 여기로 돌아와 답을 업데이트하고 더 정확하게 만들었습니다.
그런 다음 1 년 후 jQuery가 다시 마음을 바꾸었고 심지어 이것을 추적하고 싶지 않습니다.
간단히 말해서, 지금 당장은 이것이 가장 좋은 대답입니다. “둘 다 사용할 수는 있지만 다릅니다.”
https://stackoverflow.com/a/5876747/257493 대신이 답변을 읽어보십시오.
해당 변경 사항에 대한 릴리스 정보는 다음과 같습니다.
값을 가져 오거나 설정하는 데 .attr () 또는 .prop ()를 사용해서는 안됩니다. 대신 .val () 메소드를 사용하십시오 (.attr ( “value”, “somevalue”)를 사용하면 1.6 이전과 마찬가지로 계속 작동합니다).
선호하는 사용법 요약
부울 속성 / 속성 및 html에없는 속성 (예 : window.location)에는 .prop () 메서드를 사용해야합니다. 다른 모든 속성 (html에서 볼 수있는 속성)은 .attr () 메서드를 사용하여 계속 조작 할 수 있으며 계속해야합니다.
또는 다른 말로하면 :
“.prop = 비 문서 자료”
“.attr”= 문서 내용
… …
API 안정성에 대한 교훈을 모두 배우기를 바랍니다.
답변
내 소스의 작업 코드 :
HTML 세계
<select name="select_from" disabled>...</select>
JS 월드
var from = jQuery('select[name=select_from]');
//add disabled
from.attr('disabled', 'disabled');
//remove it
from.removeAttr("disabled");
답변
jQuery를 사용하는 경우 disabled 속성을 설정하는 몇 가지 방법이 있습니다.
var $element = $(...);
$element.prop('disabled', true);
$element.attr('disabled', true);
// The following do not require jQuery
$element.get(0).disabled = true;
$element.get(0).setAttribute('disabled', true);
$element[0].disabled = true;
$element[0].setAttribute('disabled', true);
답변
$(element).prop('disabled', true); //true|disabled will work on all
$(element).attr('disabled', true);
element.disabled = true;
element.setAttribute('disabled', true);
위의 모든 것은 완벽하게 유효한 솔루션입니다. 귀하의 요구에 가장 적합한 것을 선택하십시오.
답변
DOM 요소를 가져 와서 disabled 속성을 직접 설정할 수 있습니다.
$(".shownextrow").click(function() {
$(this).closest("tr").next().show()
.find('.longboxsmall').hide()[0].disabled = 'disabled';
});
또는 둘 이상이있는 경우 each()
모든 것을 설정 하는 데 사용할 수 있습니다.
$(".shownextrow").click(function() {
$(this).closest("tr").next().show()
.find('.longboxsmall').each(function() {
this.style.display = 'none';
this.disabled = 'disabled';
});
});
답변
jQuery의 attr()
메소드를 사용하십시오.
$(this).closest("tr").next().show().find('.longboxsmall').attr('disabled', 'disabled');
답변
질문은 JS 로이 작업을 수행하는 방법을 묻는 것이기 때문에 바닐라 JS 구현을 제공하고 있습니다.
var element = document.querySelector(".your-element-class-goes-here");
// it's a good idea to check whether the element exists
if (element != null && element != undefined) {
element.disabled = "disabled";
}