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.