PHP 및 jQuery로 양식을 개발 중입니다. 그것은 파이어 폭스하지만 IE에서 잘 작동HTML에서 onChange가 IE에서 작동하지 않습니다.
http://www.yamaha-motor.com.pe/extreme/php/yamaha/registro/FrmRegistro01.php
: 여기
는 링크입니다.당신은 저에게 조언 할 수 있습니까 ??
감사
PHP 및 jQuery로 양식을 개발 중입니다. 그것은 파이어 폭스하지만 IE에서 잘 작동HTML에서 onChange가 IE에서 작동하지 않습니다.
http://www.yamaha-motor.com.pe/extreme/php/yamaha/registro/FrmRegistro01.php
: 여기
는 링크입니다.당신은 저에게 조언 할 수 있습니까 ??
감사
방금 해결했습니다.
수정
같은 것을하지 말아야하는 것이었다 :$('select#cbxMeses').attr('onchange', "javascript:fn_mesSeleccionado()");
을 ... 그리고 이렇게 :
var select1 = document.getElementById("cbxMeses");
select1.changed = false;
select1.onchange = fn_mesSeleccionado;
은 분명히 IE의 모든 DOM 요소가 렌더링되기 전에 모든 JavaScrpit 코드를 실행하려고합니다.
그럼 페이지가 너무 복잡하고 당신이 입증 원하는 것을 정확히 문제가 알기 어려운 잘라 내기 및 붙여 넣기 코드와 함께 산재 해있다. 그러나 스크립트를 간략히 살펴보면 addEventListener
에 대해 스니핑 중이며 특히 IE에 대해 스니핑을하고 완전히 다른 작업을 수행하고 있음을 알 수 있습니다. 그 중 많은 부분이 주석으로 처리됩니다. 그래서 당신은 무엇을 기대합니까?
$('select#cbxMeses').attr('onchange', "javascript:fn_mesSeleccionado()");
이것은 명백한 잘못입니다. 첫째, 이벤트 핸들러 속성이 javascript:
이 아니어야합니다 (이는 javascript:
의사 URL에만 해당하며 도 사용하지 말아야합니다 ()).
하지만 어쨌든 이것은 이벤트 핸들러를 요소에 첨부하는 것이 아닙니다. 그것은 IE에서 작동하지 않을 것이고, JS 코드를 문자열에 넣는 것은 추악하고 비효율적입니다. 함수 (함수 이름 또는 인라인 function() { ... }
)와 jQuery의 이벤트 바인딩 메소드 중 하나를 사용하십시오.
$(document).ready(function() {
$('#cbxMeses').change(fn_mesSeleccionado);
$('#cbxAnos').change(fn_anoSeleccionado);
...
});
이 모든 곳에서 사용할 수 있습니다. 브라우저를 전혀 스니핑 할 필요가 없습니다!
나는 이미 해결책을 발견했습니다 ... 문제는 IE에서 스크립트를 사용할 때의 문제 때문이었습니다. IE는 모든 DOM이로드되기 전에 JS 스크립트를 실행하려고 했으므로 jQuery를 통해 일부 SELECT 요소에 추가 한 이벤트 리스너는 작동하지만 현재는 작동하지 않습니다. 그런데 ... If nothing have nothing 리스너에서 함수의 이름을 가진 문자열을 배치하는 것이 좋지 않습니다 ... 동일합니다. –
무엇이 작동하지 않습니까? 그것은 파이어 폭스와 IE에서 나를 위해 작동합니다. – scunliffe
항상 문제가있는 IE의 버전을 포함 시키십시오. 다양한 엔진이 사용되며 널리 사용되며 여러 가지 단점이 있습니다. –
목록에서 선택했을 때 표시되는 체크 표시에 대해 이야기하고 있다면 IE8, IE7 및 Quirks 모드에서 저에게 적합합니다. 기대하는 다른 행동이 있습니까? – user113716