2014-01-27 2 views
0

I가 크롬과 IE 10과 FF에서 잘 작동하지만 IE 8에서 작동뿐만 아니라 IE 9에서 가장 가능성이없는 다음 코드를IE에서 작동하는 코드를 수정하는 방법 <= 9

<script type = "text/javascript"> 
$(document).ready(function() { 
    var $j = jQuery.noConflict(); 
    console.dir($j("#Button1")); 
    $j("#Button1").click(function() { 
     var textbox = document.getElementById("TextBox1").value; 
     if (textbox.length > 0) { 
      //alert("Search query is not empty and redirecting..."); 
      window.location.href = "http://www.mypagep.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending"; 
     } 
     else { 
      alert("Search query is empty"); 
      document.getElementById("TextBox1").focus(); 
     } 
    }); 
    $j('#TextBox1').keyup(function() { 
     var $th = $j(this); 
     $th.val($th.val().replace(/[^a-zA-Z0-9 ]/g, '')); 
    }); 
    $j('#TextBox1').keypress(function (e) { 
     var textbox = document.getElementById("TextBox1").value; 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 13) { 
      if (textbox.length > 0) { 
       e.preventDefault(); 
       window.location.href = "http://www.mypage.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending"; 
      } 
      else { 
       e.preventDefault(); 
       alert("Search query is empty"); 
       document.getElementById("TextBox1").focus(); 
      } 
     } 
    }); 
}); 
</script> 

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> 

나는 JQuery와 충돌 할 것으로 보인다 그리고 내가 줄을 사용하도록 강요하고 이유 CMS를 사용하고 있습니다 : var $j = jQuery.noConflict();를 대신 일반 $$j을 사용하여 내가 사용하고

하여 라이브러리 링크에 대해 다음 기호

기능 : 사용자가 입력란에 유효하지 않은 문자를 입력하면 문자가 삭제됩니다. 사용자가 텍스트 상자에 enter 키를 누르고 거기에 문자가 있으면 사용자는 검색 페이지로 이동합니다. 그렇지 않으면 경고 상자가 표시됩니다. 검색 버튼과 동일하지만 사용자가 텍스트 상자에 텍스트가 없으면 경고 상자가 표시되고 아무 것도 나타나지 않지만 텍스트 상자 안에 텍스트가있는 경우 사용자는 검색 페이지로 이동합니다. 이 IE 브라우저 버전과 함께 작동, 그래서 내가되지 않은 코드를 수정하려면 어떻게해야/

:

우리는 내가 IE의 이전 버전에서 작동하도록 그걸 얻기 위해 노력하고 있어요 그래서 다른 소프트웨어 때문에 IE8을 사용하도록 강요 최신 정보?

+0

왜 jQuery를 사용할 때'document.getElementById'를 사용합니까? '$ ('..')'이게 .. – enyce12

+0

어떻게되지 않나요? IE의 경고 상자에서 오류는 무엇입니까? (IE8의 왼쪽 아래 모서리에있는 작은 노란색 경고 기호) –

+4

먼저 작동하지 않는 코드가 무엇인지 * 알려 주어야합니다. 둘째,'$ (document) .ready()'를 가지고 있지만 내부에'var $ j = jQuery.noConflict();'를 실행하고 있습니다. jQuery 충돌이 발생하면'$ (document) .ready()'가 어쨌든 작동하지 않으므로 다시 생각해야합니다. 어쨌든'noConflict'가 필요한 이유는 무엇입니까? 어쩌면 관련성이 있습니다. 여기서하고있는 일에 대해 말해주십시오. 마지막으로, 어떤 jQuery 버전을 사용하고 있습니까? IE8에서는 jQuery 2.0이 작동하지 않는다는 것을 기억하십시오. – Spudley

답변

2

개발자 도구가 열려 있어도 IE8에는 console.dir이 존재하지 않습니다. 개발자 도구가 열려 있어도 console 개체는 < IE9에 존재하지 않습니다. 이것을 console.log으로 변경하거나 제거하십시오. IE8 코드의 경우, 개발자 도구가 필요하기 때문에 특별한 순간을 제외하고는호출을 유지하고 싶을 것입니다.

또한, 귀하의 전화 발신 위치에 대한 Spudley의 의견을 jQuery.noConflict()으로 강력히 고려해야합니다. 이 경우 보다$(document).ready 호출을 호출해야하며 .ready() 호출에 no conflict jQuery 변수가 사용되도록 $j(document).ready으로 변경하십시오.

+0

코드 업데이트 :) 고마워요. – Si8

관련 문제