Javascript语法错误?

时间:2015-06-29 22:22:27

标签: javascript ajax syntax

嘿,我做错了什么?我的JS文件停止了工作,我尝试了不同的方法,但它不起作用。我想点击一下按钮启动该功能" id"。

$(document).ready(function () {
    $("#paybutton").click(function () {}
    var params = ("projectpaymentoption=1197&id=");
    var usernamepay = window.localStorage.getItem("username");
    var paymenturl = params + usernamepay;
    }

    $.ajax({
        type: 'post',
        url: 'http://www.bla.de/phone/encode.php',
        data: {
            data: {
                "usernamepay": usernamepay
            },
        }
        success: function (result) {
            console.log(result);
        }
    });

4 个答案:

答案 0 :(得分:1)

的问题:

您没有关闭所有括号,我假设您过早关闭了点击回调功能。您未正确结束括号。您的ajax调用超出了单击处理程序和就绪函数的范围。

  

注意:您需要学习使用缩进,括号放置和注释来帮助您将代码块视为执行的不同部分,这样您就可以发现ajax调用仅被触发一次(没有正确的变量)而不是在那个允许它多次发生的点击处理程序中。

在变量赋值中你不需要字符串周围的括号。

编辑:下一部分是角度特定的,而不是jquery,但不是无效的 .ajax()要求post请求中的数据采用字符串格式,而不是对象的格式。

解决方案:

重新组织代码以显示缩进并更正闭包,包括结尾});这是必要的。

删除了Parenthesizes,并将变量声明组合到一个var语句中(可读性和效率/文件大小)

使用'use strict'

也是个好主意

我使用$.param(obj)格式化传递的数据。

代码:

'use strict';
$(document).ready( function() {
  $("#paybutton").click(function() {
    var params = "projectpaymentoption=1197&id=",
                usernamepay = window.localStorage.getItem("username"),
                paymenturl = params + usernamepay;

    $.ajax({
      type: 'POST',
      url: 'http://www.bla.de/phone/encode.php',
      data: $.param({"usernamepay": usernamepay}),
      success: function(result) {
        console.log(result);
      }
    }); // end of ajax call
  }); // end of #payButton click handler
}); // end of document.ready function

答案 1 :(得分:0)

下面的格式化代码。请从下次使用一些IDE。

$(document).ready(function...功能已关闭,底部为});。        已使用$("#paybutton").click(function(){..

正确关闭});

删除了额外的data: {声明,在,之前加success: function()。修正了其他缩进。

$(document).ready( function() {
    $("#paybutton").click(function() {
        var params = ("projectpaymentoption=1197&id=");
        var usernamepay = window.localStorage.getItem("username");
        var paymenturl = params + usernamepay;
        $.ajax({
             type: 'post',
             url: 'http://www.bla.de/phone/encode.php',
             data: {"usernamepay": usernamepay},
             success: function(result) {
             console.log(result);
              }
        });                         
    });
});

答案 2 :(得分:-1)

你应该使用一些IDE(或者至少一些可以帮助你进行语法着色和括号匹配的程序 - notepad ++可能很棒)并为你的代码添加一些缩进

这是你的代码缩进,加上我在那里添加的一些评论 通过这种方式,您可以查看问题所在以及如何解决问题。

$(document).ready( function() {
    $("#paybutton").click(function() {
            // Nothing here
        } // <-- Here you should close the click function (from two lines above), missing )
        var params = ("projectpaymentoption=1197&id=");
        var usernamepay = window.localStorage.getItem("username");
        var paymenturl = params + usernamepay;
    }

    $.ajax({
        type: 'post',
        url: 'http://www.bla.de/phone/encode.php',
        data: {
            data: {"usernamepay": usernamepay},
        } // <-- Here you should have a comma. Elements of object are separated with commas, just like your previous lines
        success: function(result) {
            console.log(result);
        }
    });

// <-- Here you should close the ready function (from the first line), missing )

答案 3 :(得分:-3)

在“成功”字段之前需要逗号。如果在代码中,但在数据对象文字中,则不需要。这是一个问题,但可能还有更多。