jQuery를 사용하여 양식 내의 모든 <input>을 비활성화하는 방법은 무엇입니까?


145
<form id="target">
....
</form>

답변:


283

이전 버전에서는을 사용할 수 있습니다 attr. jQuery 1.6부터는 prop대신 사용해야 합니다.

$("#target :input").prop("disabled", true);

'target'내의 모든 양식 요소를 비활성화합니다. 참조 :input:

모든 입력, 텍스트 영역, 선택 및 버튼 요소와 일치합니다.

<input>요소 만 원하는 경우 :

$("#target input").prop("disabled", true);

21
jQuery 1.6 기준으로$("#target :input").prop("disabled", true);
— danijel

4
누군가 업데이트 된 방법으로 답변을 편집해야합니다.이 시점에서는 나쁜 정보 일뿐입니다.
— Ben Claar

그리고 submit () 콜백에서 $ (this)를 사용하여 어떻게 수행합니까?
— Olivier Pons

2
@OlivierPons $(this).closest('form').find('input').prop('disabled', true);. 당신이 그것을 더 잘 통합 할 수 있는지 확실하지 않지만, 나는 여전히 jQuery에서 다소 멍청합니다.
— wjervis

39

위의 예는 기술적으로 올바르지 않습니다. 최신 jQuery에 따라 prop()메소드를 사용하지 않도록 설정해야합니다. API 페이지를 참조하십시오.

'target'내부의 모든 양식 요소를 비활성화하려면 모든 입력, 텍스트 영역, 선택 및 단추 요소와 일치하는 : input 선택기를 사용하십시오.

$("#target :input").prop("disabled", true);

요소 만 원한다면 이것을 사용하십시오.

$("#target input").prop("disabled", true);

15

또한 더 간결한 방법은 선택기 엔진을 사용하는 것입니다. 따라서 div 또는 양식 부모의 모든 양식 요소를 비활성화하십시오.

$myForm.find(':input:not(:disabled)').prop('disabled',true)

13

당신은 추가 할 수 있습니다

 <fieldset class="fieldset">

그리고 당신은 전화 할 수 있습니다

 $('.fieldset').prop('disabled', true);

8

쓰기 만하면 모든 양식을 비활성화 할 수 있습니다.

jQuery 1.6 이상

$("#form :input").prop("disabled", true);

jQuery 1.5 이하

$("#form :input").attr('disabled','disabled');

8

이 한 줄을 사용하면 양식의 모든 입력 필드를 비활성화 할 수 있습니다

$('form *').prop('disabled', true);

이렇게하면 양식의 모든 요소에 비활성화 된 속성이 불필요하게 추가됩니다.
— Osvaldo Maria

@OsvaldoMaria 예, 별표 (모든) 선택기 때문에 비활성화하려는 모든 입력 요소에 .custom-class를 추가 한 다음 선택기를 $ ( 'form .custom-class'). prop ( '사용 안함', true ').
— 사미르 Rahimy

-1

Gnarf 는 최종 답변 (버전 1.6에서 jQuery API의 변경 사항 포함)을 제공했습니다 .


그는 "모든 입력 비활성화"뿐만 아니라 "양식 내부의 모든 입력 비활성화"를 요청했습니다.
— Bengala

@Bengala는 확실하지만 API가 처음으로 변경되었다는 점을 강력하게 표시하고 있습니다. 당시 나는이 시점에서 언급 한 다른 답변 중 아무것도 게시하지 않았습니다.
— ErichBSchulz

이해하지만 각 크레딧에 정확한 답변을 포함해야한다고 생각합니다. 링크는 모든 입력을 비활성화하는 방법을 보여 주며 모든 질문에 대답하지는 않습니다.
— Bengala
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.