2011-09-16 14 views
0

私はjquery.form.js(バージョン:2.84)を使用しています。下のコードでは、$( 'imageform')の直前で止まっています。ajaxSubmit .. preventDefaultを削除すると、フォームは通常どおりに提出され、ページは更新されます。でpreventDefaultが存在する場合、私はloader.gifを参照してくださいますが、サーバ側では、私はすべてのデータが表示されないとも警告が解雇されることはありません。..ajax form submit not working

google.maps.event.addDomListener($('photoimg'), 'change', function(e){ 
      e.preventDefault(); // <-- important 
      $("preview").innerHTML = ("<img src=\"loader.gif\" alt=\"Uploading....\"></img>"); 
      $('imageform').ajaxSubmit({ 
       target: 'preview' 
      }); 
      alert('after submit'); 
     }); 

私はまた、以下のような機能を使用していますが、それはですあなたはgetElementById機能で$を上書きしてしまったので、私はなぜ、$( 'imageform')を使用していない$( '#のimageform')...

function $(element) { 
    return document.getElementById(element); 
} 

答えて

2

あなた$関数はjQueryのためのその同じ変数の意味をつかうれます。あなたは、jQueryで多くの互換性のものを混乱させるか、簡単なルートを取ることができます:$関数の名前を別のものに変更するか、関数が呼び出しを保存するだけなのでdocument.getElementById()を呼び出してください。あるいは、より良いことに、jQueryを使用してその呼び出しを処理します。

3

はありませんしています。

$('imageform').ajaxSubmit 

は、jQueryオブジェクトが必要なDOM要素でajaxSubmitを実行します。あなたの$または使用を削除する必要があるだろう、次のいずれか

jQuery('#imageform').ajaxSubmit 

$("#foo")document.getElementById("foo")と同じではありません。

  • jQueryの機能は.bind.ajaxSubmit本ようなすべてのjQueryの機能を有しているjQueryオブジェクトを返します。一方、jQueryの機能を持たない裸のDOM要素を返します。

  • document.getElementById

jQueryオブジェクトはとても、DOM要素の配列のようなものです:

$("#foo")[0] === document.getElementById("foo") 
+0

うわー!どうもありがとう。それは素晴らしい説明です...私はこれを試してみます.. – user644745