2011-11-11 7 views
0

まあ、dajaxの "djangoフォーム"の例に似たフォームがありますが、JSONが処理されていないことを除いてすべて正常に動作していますので、jquery.dajax.coreを修正しました。このようなJS:JSONがブラウザに戻って処理されると、私は最初の "Entroを!" を取得Django/Dajaxプロセスは処理されていません

[{"cmd": "remcc", "id": "#contact_form", "val": ["error"]}, {"cmd": "alert", "val": "Thank you, Alejandro"}, {"cmd": "js", "val": "alert(\"jummmmm\");"}] 

が、何もない:

... 
process: function(data) 
{ 
    if(data==Dajaxice.EXCEPTION){ 
     alert('Something went wrong, please reload the page.'); 
    } 
    else{ 
     console.log(data); 
     alert("ENTRO!"); 
     $.each(data, function(i,elem){ 
      alert("ENTRO!2"); 
      console.log(elem.cmd); 
     switch(elem.cmd) 
     { 
      case 'alert': 
       alert(elem.val) 
      break; 
      ... 

一つは、私のajax.pyからJSONを返しますJSONの何も処理されません。 意図的にajax.py関数内のものを壊した場合、正しい動作を得て、Dajaxice.EXCEPTIONに警告します。

提案がありますか?

--EDIT--

Dajax.process機能:

validateContactForm = function() { 
     datos = jQuery('#contact_form').serializeObject(); 
     console.log(datos); 
     // jQuery 
     // If you are using jQuery, you need this form->object serializer 
     // https://github.com/cowboy/jquery-misc/blob/master/jquery.ba-serializeobject.js 
     Dajaxice.ajax.validateContactForm(Dajax.process,{'formulario':datos}); 
    } 

そしてajax.py機能:

from dajax.core import Dajax 

@dajaxice_register 
def validateContactForm(request, formulario): 
    dajax = Dajax() 
    form = ContactoForm(formulario) 

    if form.is_valid(): 
     dajax.remove_css_class('#contact_form','error') 
     dajax.alert(_("Thank you, %(name)s") % {"name":form.cleaned_data.get('nombre')}) 
     form.save(); 
     dajax.script('alert("jummmmm");') 
     print dajax, dir(dajax) 
    else: 
     dajax.remove_css_class('#contact_form','error') 
     print form.as_ul() 
     for error in form.errors: 
      dajax.add_css_class('#id_%s' % error,'error') 
      print error 
      print dajax, dir(dajax) 
    return dajax.json() 

[OK]を、Firebugのサイレント失敗し、クロムは言う:

Uncaught TypeError: Cannot call method 'each' of undefined 
Dajax.process 
oXMLHttpRequest.onreadystatechange 
b.dispatchEventda 
k 
b.open._object.onreadystatechange 

オペラトンボ:同じ動作でテスト

Uncaught TypeError: Cannot call method 'each' of undefined 
Dajax.processjquery.dajax.core.js:11 
oXMLHttpRequest.onreadystatechangedajaxice.core.js:100 
b.dispatchEventdajaxice.core.js:141 
kdajaxice.core.js:135 
b.open._object.onreadystatechange 

jQueryのバージョン:

1.6.2 1.6.2.min 1.6.4

答えて

0

私は同じ問題を抱えていたが、その後はこの機能を渡って走りましたこのサイト:Convert form data to JavaScript object with jQuery

+0

http://stackoverflow.com/questions/1184624/serialize-form-to-json-with-jquery – wissam

+0

私たちの回答の下にある編集リンクを使用して編集することができます – oers

関連する問題