2012-01-17 2 views
0

このコードをjqueryに変換する必要がありますが、どのようにツールや方法がありますか、XMLHttpRequestがjQueryでうまくいかない理由は何ですか?通常のjavascriptコードをjQueryに変換するにはどうすればいいですか?

私はこのコードを持っている:

function showVal(str) { 
    if (str == "") { 
    document.getElementById("txtHint").innerHTML = "* Please type in School Name."; 
    return; 
    } 

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
    } else {// code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4) { 
     if (xmlhttp.status == 200) { // break this into 2 statements so you can handle HTTP errors 
     document.getElementById("txtHint").innerHTML = xmlhttp.responseText; 
     } else { 
     document.getElementById("txtHint").innerHTML = "AJAX Error (HTTP "+xmlhttp.status+")"; 
     } 
    } 
    }; // functions declared in this way should be followed by a semi colon, since the function declaration is actually a statement. 

    // encodeURIComponent() does all the escaping work for you - it is roughly analogous to PHP's urlencode() 

    // xmlhttp.open("GET","ajaxFuncs2.php?q="+encodeURIComponent(str),true); 
    xmlhttp.open("GET","ajaxFuncs2.php?q="+encodeURIComponent(str),true); 

    xmlhttp.send(); 
} 
+2

。公式のWebサイトhttp://docs.jquery.com/How_jQuery_Worksから始めてください。 –

+1

これが機能する場合は、切り替える必要はありません。実際、jQueryを使用していない(そしてロードしている)場合は、jQueryに変換するだけでページのサイズが増えます。 –

+0

私の他のjqueryコードでは機能しません: – Drazek

答えて

2

あなたが本当にしたい場合、変換はあなたのコードははるかにコンパクトに...しかし、jQueryのへの依存性を持つの追加ペナルティを持つでしょう。個人的には、この比較的単純な機能のクロスブラウザーの問題を扱いやすいのであれば、それを変換する理由は見当たりません。言われて、それを変換するのは比較的簡単なことだろうと

function showVal(str){ 
    if(str == ''){ 
     $('#txtHint').html("* Please type in School Name."); 
     return; 
    } 

    $.get({ 
     url: 'ajaxFuncs2.php?q='+encodeURIComponent(str), 
     success: function(data){ $('#txtHint').html(data); }, 
     error: function(){ $('#txtHint').html('AJAX Error'); } 
    }); 
} 

...またはその付近

+0

は動作しません:S – Drazek

+0

@Drazek - 少なくとも正しい方向に着手すれば十分です。要件を知らずにコードを書くことは不可能です。 –

0

あなたはjQuery's AJAX engineを使用して、それを書き換えることができます。それは簡単な作業でなければなりません。

しかし、あなたは年齢の古い質問:に壊れていないものを修正する必要がありますか?

それは次のようになり$.ajaxを使用して:あなたはjQueryのに関するいくつかのドキュメントを読むことから始めなければならない

function showVal(str){ 
    if(str == null || str == ''){ 
     $('#txtHint').html('* Please type in School Name.'); 
    } 
    else { 
     $.ajax({ 
       url: 'ajaxFuncs2.php?q='+encodeURIComponent(str), 
       success: function(data, textStatus, jqXHR){ $('#txtHint').html(data); }, 
       error: function(request, status, error){ $('#txtHint').html('AJAX Error (HTTP ' + status + ')'); } 
      }); 
    } 
} 
+0

jQueryを使うと、すべてのブラウザ固有のコードではなく、コードが何をするのかがわかるので、少し楽になります。 –

+0

それは動作しません、どのように私はJavaScriptの知識を持っていないときに簡単なタスクをすることができます – Drazek

+0

@Drazekまあ... JavaScriptをプログラミングするには、いくつかの基本的なJavaScript knowledgdeが必要です。しかし、それには多くのリソースがあります(http://www.w3schools.com/jquery/default.aspやhttp://www.w3schools.com/js/default.aspなど)。ちょっと読んでみてください。 –

関連する問題