为什么我得到"未捕获的ReferenceError:userId未定义"错误?

时间:2018-05-27 18:08:26

标签: javascript jquery

即使我的警报($ userId)打印出1(这是用户的id),我仍然会收到错误,就像没有定义userId一样。知道为什么吗?

$('.postComment').on('click', function(event){
            event.preventDefault();
            $userId = $("input[name=user_id]").val();
            $imageId = $("input[name=image_id]").val();
            $comment = $("textarea[name=comment]").val();
            alert($userId);

            $.ajax({
                method: 'POST',
                url: urlComment,
                data: {userId: userId, imageId: imageId, comment: comment}
            }).done(function(){
                alert('Works');
            })
        });

2 个答案:

答案 0 :(得分:1)

你正在使用jQuery和$在这里使用非常不同:

这是您可以尝试的最干净的方式:

    $('.postComment').on('click', function(event){
        event.preventDefault();
        $.ajax({
            method: 'POST',
            url: urlComment,
            data: {
                    userId: $("input[name=user_id]").val(), 
                    imageId: $("input[name=image_id]").val(), 
                    comment: $("textarea[name=comment]").val()}
        }).done(function(){
            alert('Works');
        })
    });

在您的代码中,您有一个名为 $ userId 的变量,而您使用的是 userId ,但未声明这就是您收到错误的原因。

答案 1 :(得分:0)

尝试以下

$('.postComment').on('click', function(event){
        event.preventDefault();
        var userId = $("input[name=user_id]").val();
        var imageId = $("input[name=image_id]").val();
        var comment = $("textarea[name=comment]").val();
        alert(userId);

        $.ajax({
            method: 'POST',
            url: urlComment,
            data: {userId: userId, imageId: imageId, comment: comment}
        }).done(function(){
            alert('Works');
        })
    });

或者

$('.postComment').on('click', function(event){
        event.preventDefault();
     var   $userId = $("input[name=user_id]").val();
     var   $imageId = $("input[name=image_id]").val();
     var $comment = $("textarea[name=comment]").val();
        alert($userId);

        $.ajax({
            method: 'POST',
            url: urlComment,
            data: {userId: $userId, imageId: $imageId, comment: $comment}
        }).done(function(){
            alert('Works');
        })
    });