2012-01-27 2 views
0

IE7에서 문제가 발생했습니다. IE8, Chrome, Firefox는 모두 정상적으로 작동하지만 IE7은이 코드를 실행하지 않습니다.JQuery IE 선택 문제

function onchange1(catname){ 
    //alert(catname); 
      $.ajax({ 
      type: "GET", 
      url: "xml/categories.xml", 
      dataType: "xml", 
      success: function(xml) { 
       var div = $('#epcf-wrap'); 
       var findval = "Cat" 
       $(xml).find('Cat').each(function(){ 
        var cval = $(this).attr('name'); 
              if(catname === cval){ 
              // I bet there is an easier way to do this 
              var xmlArr = []; 
              var xml_EPCF_1_1  = $(this).find('EPCF_1_1').text(); 

나는 몇 가지 있다는 것을 읽었습니다 :

다음은 HTML 선택 (코드 조각)

<form name="frmCat" action="index3.html" method="get"> 
      <select id="mySelect" onChange="onchange1((this).options[this.selectedIndex].value);"> 
       <option>Select a Category</option> 
      </select> 

여기에 다른 브라우저 (AJAX 조각)에서 잘 실행되는 자바 스크립트입니다입니다 일종의 IE7과 AJAX 문제가 있습니다. 일부 형식의 MSIE 검사가 수행되어야한다는 힌트를 보았습니다. 그러나 JavaScript와 JQuery를 처음 접했을 뿐이며, 내가 한 일에 대해 매우 명확하게 일치하지 않습니다. 이리.

생각하십니까?

+0

어떤 부분이 작동하지 않습니까? 에러 메시지? –

+0

전체 함수를 보여 주려면 객체 끝에'$ .ajax()'로 전달되는 끝에 쉼표가 없으므로 닫는'}'바로 앞에 쉼표가 있습니까? IE는 그 점을 좋아하지 않지만 (솔직히 동의 함) 다른 브라우저는 괜찮습니다. "실행하지 않을"것의 의미는 무엇입니까? 오류가 있습니까? 당신의 함수는'catname' 인자에서 정확한 값을 얻습니까 (주석 처리 된'alert (catname)'에서와 같이)? – nnnnnn

+0

오류 메시지가 없습니다. 이 게시물 덕분에 이제는 오류 처리기를 넣는 방법을 알았습니다. 지금 시도하고 있습니다. 전체 코드는 여기에 게시하기에는 너무 크기 때문에 http://mdihosting.com/5/Projects/VRACC/index3.html – ChadM

답변

1

인라인 자바 스크립트를 사용할 수 없습니다. jQuery 방식을 사용하십시오.

$('#mySelect').change(function(){ 
    //You can get the select value by the way below. 
    var catname = $(this).val(); 
    $.ajax({ 
     type: "GET", 
     url: "xml/categories.xml", 
     dataType: "xml", 
     success: function(xml) { 
      var div = $('#epcf-wrap'); 
      var findval = "Cat" 
      $(xml).find('Cat').each(function(){ 
       var cval = $(this).attr('name'); 
       if(catname === cval){ 
        //.... 
       } 
      } 
     } 
    }); 
}); 
+0

내가 그랬다면 어떻게 select에서 변수 'catname'을 전달할 수 있을까요? 어떻게이 (이) .options [this.selectedIndex] .value grab를 처리 할 수 ​​있습니까? 기다려 - 나는 그것을 보았다 :(나는 이것에 대한 터널 비전을 가지고있다 – ChadM

+0

그냥 이것을 시도했다 - 기쁨이 없다. 또한 firefox에서 작업하는 것을 멈췄다. – ChadM

+0

@ChadM html로 코드'onChange = ... '를 삭제 했습니까? – xdazz

0

IE7에서 ajax를 사용하는 데 문제가 없습니다.

ajax 호출에 오류 처리기를 추가하고 반환되는 오류 메시지를 확인하십시오.

또한 올바른 매개 변수를 가져와야합니다. 마지막

,

$("#myselect").change(handler(event)) 

조금 청소기 소리. 여기가 jquery 문서에 있습니다. http://api.jquery.com/change