2011-08-29 4 views
4

다음 코드를 사용하여 제출 단추를 사용하지 않도록 설정합니다.JQuery IE7에서 제출 단추 활성화/비활성화

$("input[type='submit']").attr("disabled", "disabled"); 

이 코드를 다시 사용하려면 다음을 수행하십시오.

$("input[type='submit']").removeAttr("disabled"); 

Internet Explorer 7을 제외한 모든 브라우저에서 정상적으로 작동합니다. IE7은 버튼을 잘 작동하지 않게 할 것이지만, 다시 활성화되면 버튼은이 비활성화 된 것처럼 보입니다.

이 버튼은 커서와 회색에도 불구하고 활성화되고 클릭 가능합니다.

IE7 enabled button with disabled appearance

(동료는 IE8과 동일한 문제가 있었지만 재현 할 수 없었습니다.)

나는 그 일을하는 장소에서 해결 방법을 가지고 있지만 그것의 추악한. 나는 두 개의 버튼을 가지고 있는데 하나는 비활성화되어있다. 시작하려면 비활성화 된 버튼을 표시하고 활성화 된 버튼을 숨 깁니다.

$("input[type='submit']:first").css("display","inline"); //show disabled 
$("input[type='submit']:last").css("display","none"); //hide enabled 
... 
<input name="Submit" type="submit" value=" Sign In " tabindex=3 disabled> 
<input name="Submit" type="submit" value=" Sign In " tabindex=3 > 

"if"조건이 충족되면 비활성화 된 제출을 숨기고 활성화 된 것을 표시합니다.

이 문제에 대한보다 우아한 CSS 또는 JQ 기반 솔루션이 있습니까?

+0

귀하의 솔루션이 실제로 최적의 솔루션 일 수 있습니다. http://stackoverflow.com/questions/1068568/disabled-buttons-in-css – rkw

답변

8
$("input[type='submit']").prop("disabled", false); 
+1

당신은 절대적으로 옳았습니다. 나는 .removeProp()이 올바른 방법이라고 생각했지만 JQuery 문서에 따르면 ".prop() 메서드는 .attr() 메서드 대신 비활성화되고 선택되어 있어야합니다. 중요 : 값을 가져오고 설정하는 데 사용됩니다. 중요 : .removeProp() 메서드를 사용하여 이러한 속성을 false로 설정하면 안됩니다. 네이티브 속성이 제거되면 다시 추가 할 수 없습니다. " –

3

$("input[type='submit']").attr("disabled", ""); 

또는

$("input[type='submit']").attr("disabled", false); 
+0

이것이 내가 처음 시작한 곳입니다. 유감스럽게도, 비활성화 된 속성은 기술적으로 아무런 논점도 취하지 않기 때문에 두 브라우저 모두 더 적은 브라우저에서 지원됩니다. –

1

@Burak 시도 - 아주 잘 작동 (존 레식은() 대신 .attr의) (.prop 사용 그것에 대해 언급 않습니다 이 특정 경우). 나는 또한 submitbutton.prop("disabled", false);submitbutton.prop("disabled", true);을 시도 했으므로 IE 7/6에서도 활성화 및 비활성화 할 수있었습니다.