为什么这个javascript不解析?

时间:2013-05-07 13:36:50

标签: javascript parsing mailchimp

我似乎已经掌握了一切,

<script language="javascript" type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>

<script type="text/javascript" src="js/mailing-list.js"></script>

在标题中,以及js文件夹中的mailing-list.js。但由于某种原因,它似乎没有解析。我已经将代码粘贴到下面 - 任何想法?

var emailEntered,
nameVal,
compVal,
foneVal,
cityVal,

$(document).ready(function () {
    $("#SendButton").click(function () {
        $(".error").hide();
        var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
        var emailaddressVal = $("#email").val();

        if (emailaddressVal == '') {
            $("#message").html('<span class="error">Enter your email address before submitting.</span>');
            return false;
        } else if (!emailReg.test(emailaddressVal)) {
            $("#message").html("<span class='error'>That is not an email address.&nbsp;  Typo?</span>");
            return false;
        } else {
            emailEntered = escape($('#email').val());
        }

        nameVal = escape($("#name").val());
        emailVal = escape($("#email").val());
        compVal = escape($("#comp").val());
        foneVal = escape($("#fone").val());
        cityVal = escape($("#city").val());
    });
    $('#signup').submit(function () {
        $("#message").html("<span class='error'>Adding your email address...</span>");
        $.ajax({
            url: 'inc/store-address.php',
            data: 'ajax=true&email=' + emailEntered + '&name=' + nameVal + '&comp=' + compVal + '&fone=' + foneVal + '&city=' + cityVal,
            success: function (msg) {
                $('#message').html(msg);
            }
        });
        return false;
    });
});

更新:通过解析我的意思是忽略了对mailing-list.js的调用。

3 个答案:

答案 0 :(得分:4)

var emailEntered,
    nameVal,
    compVal,
    foneVal,
    cityVal,

应该是:

var emailEntered,
    nameVal,
    compVal,
    foneVal,
    cityVal;

注意结尾处的分号。

答案 1 :(得分:2)

你应该在代码上运行静态代码分析器,比如jshint,同时编写代码:

test.js: line 7, col 6, Missing semicolon.
test.js: line 13, col 36, Expected '===' and instead saw '=='.

你首先会看到一些语法错误。然后,您应该打开您的JavaScript控制台并查看错误是什么。通常,解释器会提供很多信息。

顺便说一句,第二个警告并不是一个错误,而是在进行相等检查时使用javascript的好习惯。

关于你的编辑,你应该使用像firebug这样的脚本(或者你可以在你喜欢的浏览器中获得的任何其他webdev工具)并检查它是否可以获得你正在编写的脚本。 它回归404了吗?然后检查路径。它回归403了吗?然后检查权限......

答案 2 :(得分:1)

我不知道你的意思是“不解析”,但你应该检查开发者控制台(在浏览器的菜单上查看)。 还有:

 var emailEntered,
        nameVal,
        compVal,
        foneVal,
        cityVal,

应该是:

 var emailEntered,
        nameVal,
        compVal,
        foneVal,
        cityVal;