簡體   English   中英

Django / Dajax進程未處理

[英]Django/Dajax process not being processed

好吧,我有一個表單,類似於dajax“ django表單”示例,除了返回的JSON未被處理之外,其他一切工作正常,我已經修改了jquery.dajax.core.js,如下所示:

...
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是:

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

當在瀏覽器中處理完json后,我得到了第一個“ Entro!”,但除此之外,JSON都沒有得到處理。 如果有意破壞ajax.py函數中的內容,我得到正確的行為,提醒Dajaxice.EXCEPTION。

有什么建議么?

- 編輯 -

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()

chrome說,好的,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。分鍾1.6.4

我遇到了同樣的問題,然后在此站點上遇到了此功能: 使用jQuery將表單數據轉換為JavaScript對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM