关于 Ajax 数据的 JSLint 警告

JSLint Warning about Ajax data

以下是我的JS片段:

$("#submit-email").click(function () {
    var first_name = $("input[name='first_name']").val();
    var last_name = $("input[name='last_name']").val();
    var telephone_number = $("input[name='telephone_number']").val();
    var email_address = $("input[name='email_address']").val();
    var message = $("textarea[name='message']").val();
    $.ajax({
        url: route_send_email,
        method: "POST",
        data: {
            first_name: first_name,
            last_name: last_name,
            telephone_number: telephone_number,
            email_address: email_address,
            message: message
        },
        success: function () {
            $("input[name='first_name']").val("");
            $("input[name='last_name']").val("");
            $("input[name='telephone_number']").val("");
            $("input[name='email_address']").val("");
            $("input[name='message']").val("");
        }
    });
});

JSLint 发出警告:

Unexpected ': first_name'.

Unexpected ': last_name'.

。 . ... 直到留言。

具体错误是什么?代码工作正常,但想让 JSLint 开心。

代码的问题是您的数据 属性 是一个 JSON 对象,其语法是 { "property": value }

JSHint 发现了 属性 名称周围没有 " 的事实。

你的 data 对象应该变成:

data: {
     "first_name": first_name,
     "last_name": last_name,
     "telephone_number": telephone_number,
     "email_address": email_address,
     "message": message
}

This问题详细解释更好的答案

您需要用 "inverted commas" 符号覆盖您的数据密钥,例如

$("#submit-email").click(function () {
    var first_name = $("input[name='first_name']").val();
    var last_name = $("input[name='last_name']").val();
    var telephone_number = $("input[name='telephone_number']").val();
    var email_address = $("input[name='email_address']").val();
    var message = $("textarea[name='message']").val();
    $.ajax({
        url: route_send_email,
        method: "POST",
        data: {
            "first_name": first_name,
            "last_name": last_name,
            "telephone_number": telephone_number,
            "email_address": email_address,
            "message": message
        },
        success: function () {
            $("input[name='first_name']").val("");
            $("input[name='last_name']").val("");
            $("input[name='telephone_number']").val("");
            $("input[name='email_address']").val("");
            $("input[name='message']").val("");
        }
    });
});

在您的数据对象中,您必须用引号写 属性 名称 喜欢:-

data: {
"first_name": first_name,
"last_name": last_name
}