$。员额投掷"非法调用" [英] $.post throwing "Illegal invocation "

查看:122
本文介绍了$。员额投掷"非法调用"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

编辑:没有答案的建议,到目前为止,在所有工作过

我正在此调用Django的。第一次运行时,服务器返回n_usr(其改变形式的用户文件中)。第二次,它只是抛出一个非法调用错误。

 函数log_in(){

        用户名= $('#usr_enter)VAL()。
        密码= $('#pass_enter)VAL()。
        如果(!n_usr){
            .post的$('/ AJAX /登录',{密码:密码,用户名:用​​户名},功能(数据){
              如果(数据==n_usr){
                $('#new_user_entry)显示(慢);
                n_usr = TRUE;
              }
              其他 {

              }

            })
    }其他 {
        密码2 = $('#pass_re_enter');
        笔名= $('#pen_enter');
            .post的$('/ AJAX /登录',{密码:密码,密码2:密码2,用户名:用​​户名,pen_name:笔名,TN:TN},功能(数据){
                如果(数据==e_act){

                } 其他 {

                }
            });
        }
    }
 

解决方案

在你的其他,你有:

 密码2 = $('#pass_re_enter');
笔名= $('#pen_enter');
 

然后你有:

  {密码:密码,密码2:密码2,用户名:用​​户名,pen_name:笔名,TN:TN}
 

您也越来越非法调用因为jQuery正试图序列化 $ jQuery对象。交,它不能。它可能试图调用一个字符串方法,并传递一个jQuery对象的情况下,从而导致错误。

您需要添加 .VAL()

 密码2 = $('#pass_re_enter)VAL();
笔名= $('#pen_enter)VAL()。
 

Edit: None of the answers suggested so far have worked at all.

I'm running this call with django. The first time it runs, the server returns "n_usr" (which changes the form the user files in). The second time, it just throws an Illegal invocation error.

function log_in () {

        username = $('#usr_enter').val();
        password = $('#pass_enter').val();
        if(!n_usr){
            $.post('/ajax/login',{password: password, username: username}, function(data) {
              if(data == "n_usr"){
                $('#new_user_entry').show('slow');
                n_usr = true;
              }
              else {

              }

            })
    }else {
        password2 = $('#pass_re_enter');
        penname = $('#pen_enter');
            $.post('/ajax/login', {password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}, function(data) {
                if(data == "e_act"){

                } else {

                }
            });
        }
    }

解决方案

In your else, you have:

password2 = $('#pass_re_enter');
penname = $('#pen_enter');

Then you have:

{password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}

You are getting Illegal invocation because jQuery is trying to serialize the jQuery object for $.post, and it can't. It's probably trying to call a string method, and is passing it a jQuery object as context, thus causing the error.

You need to add .val().

password2 = $('#pass_re_enter').val();
penname = $('#pen_enter').val();

这篇关于$。员额投掷"非法调用"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆