여러 필드의 가시성을 전환하는 양식이 있다고 가정하십시오. 필드가 표시되지 않는 경우 해당 값이 요청되는 것을 원하지 않습니다.
이 상황을 어떻게 처리합니까?
답변:
양식 요소를 비활성화로 설정하면 서버로의 이동이 중지됩니다. 예 :
<input disabled="disabled" type="text" name="test"/>
자바 스크립트에서는 다음과 같은 의미입니다.
var inputs = document.getElementsByTagName('input');
for(var i = 0;i < inputs.length; i++) {
if(inputs[i].style.display == 'none') {
inputs[i].disabled = true;
}
}
document.forms[0].submit();
jQuery에서 :
$('form > input:hidden').attr("disabled",true);
$('form').submit();
.prop()
대신 사용 하는 .attr()
것이 좋습니다. 을 사용하여 확인하거나 설정하면 .attr()
경우에 따라 원하지 않는 결과가 반환됩니다. yorch가 언급 한 내용에 대해 언급하기 전에 jQuery 문서를 읽으십시오.
숨겨진 상위 요소 내의 모든 요소 또는 특정 요소를 비활성화하려면 다음을 사용할 수 있습니다.
$("div").filter(":hidden").children("input[type='text']").attr("disabled", "disabled");
이 예는 http://jsfiddle.net/gKsTS/ 숨겨진 div 내의 모든 텍스트 상자를 비활성화합니다.
:input
대신input
하면 쉽게 모든 비활성화 할 수 있습니다select
및textarea
요소