2011-09-07 3 views
-1

으로 비활성화되어 입력/버튼을 제출 활성화 할 수 없습니다 : I가 버튼 위에 마우스를 가져 가면가 XHTML 내가 XHTML이 간단한 버튼이 기본

<input type="submit" name="submit" value="Test" disabled="disabled" onmouseover="this.disabled=''" /> 

문제는, 아무리 내가 무엇을하려고하지를, 그것은 '수상 자신이 가지고있는 비활성화 된 속성에서 다시 활성화하지 마십시오. XHTML에서는 disabled="disabled"을 사용해야합니다.이 옵션은 JavaScript로 활성화/비활성화하는 옵션을 완전히 해제 한 것 같습니다. this.disabled='', this.disabled=false 및 심지어 this.removeAttribute('disabled')을 실행 해 보았지만 아무 것도 버튼을 다시 활성화 할 수없는 것 같습니다. 이상한 일은 속성의 일부 (XHTML이 유효하지 않음) 인 ='disabled' 부분을 제거하면 버튼이 제대로 작동합니다. 잘못된 XHTML을 사용하지 않으면 이것이 가능하지 않습니까?

참고 :이 예제에서는 jQuery가 아닌 JavaScript 만 사용하는 것이 좋습니다.

나는 이것이 5 초 정도 걸릴 것 같지만 분명히 좋지 않을 것이라고 생각했습니다.

답변

1

비활성화 된 요소가 클릭과 함께 마우스 오버/아웃 이벤트를 발생시키지 않는 것 같습니다.

다음은 세계 최고의 솔루션은 아니지만 다른 요소로 래핑하고 wrapping 요소의 mouseover 이벤트를 사용하여 사용하도록 설정할 수 있습니다.

<div style="display:inline-block;padding:1px;" onmouseover="document.getElementById('submit').disabled=false"> 
    <input type="submit" id="submit" name="submit" value="Test" disabled="disabled" /> 
</div> 
+0

매우 이상합니다. 방금 마우스 오버 이벤트를 요소에 배치하는 대신 폼 요소에 추가했습니다. 감사. :) – animuson

+0

'div'는 적어도 Firefox에서 전체 영역이 버튼에 의해 점유되면'mouseover' 이벤트를 수신하지 않습니다. 코드는 패딩 때문에 작동하며 버튼 주변에 1px의 넓은 트리거 영역을 제공합니다. –

+0

@ Søren, 내가 왜 그것을 추가했는지. :) – epascarello

관련 문제