1

我似乎已经准备好了一切,

<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>

在标题中,mailing-list.js在 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 的调用被忽略了。

4

3 回答 3

4
var emailEntered,
    nameVal,
    compVal,
    foneVal,
    cityVal,

应该:

var emailEntered,
    nameVal,
    compVal,
    foneVal,
    cityVal;

注意最后的分号。

于 2013-05-07T13:39:34.920 回答
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 吗?然后检查权限...

于 2013-05-07T13:39:59.677 回答
1

我不知道您所说的“不解析”是什么意思,但您应该检查开发人员控制台(查看浏览器的菜单)。并且 :

 var emailEntered,
        nameVal,
        compVal,
        foneVal,
        cityVal,

应该 :

 var emailEntered,
        nameVal,
        compVal,
        foneVal,
        cityVal;
于 2013-05-07T13:41:03.723 回答