为什么这个javascript解析不了?
我似乎已经一切就绪,为什么这个javascript解析不了?
<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-\.][email protected]([\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. 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被忽略。
var emailEntered,
nameVal,
compVal,
foneVal,
cityVal,
应该是:
var emailEntered,
nameVal,
compVal,
foneVal,
cityVal;
通知分号结尾。
也是这些变量声明真的应该在匿名函数声明中。 – Alnitak 2013-05-07 13:40:43
什么是匿名函数声明,Alnitak? – annoyingnewbie 2013-05-07 13:42:43
在JS中,所有变量的作用域都是“function(){}”块的局部。如果你想声明一些变量,不要在文件级别声明它们,它们将是全局变量,但是在函数内部,以及更靠近你使用它们的地方。 – zmo 2013-05-07 13:45:50
你应该对代码运行静态代码分析,像jshint,一边写代码:
test.js: line 7, col 6, Missing semicolon.
test.js: line 13, col 36, Expected '===' and instead saw '=='.
,你会先看到一些语法错误。然后,你应该打开你的JavaScript控制台,看看错误是什么。通常解释者会提供很多信息。
顺便说一下,第二个警告并不是真正的错误,但是在进行平等检查时有一个很好的习惯。
关于您的编辑,您应该使用像萤火虫(或任何其他webdev工具,您可以在您最喜爱的浏览器中获得)的脚本,并检查它是否可以得到您正在编写的脚本。 它是否返回404?然后检查路径。它返回403吗?然后检查权限...
我不知道你的意思是“不解析”,但你应该检查开发者控制台(看看你的浏览器的菜单)。 并且:
var emailEntered,
nameVal,
compVal,
foneVal,
cityVal,
应该是:
var emailEntered,
nameVal,
compVal,
foneVal,
cityVal;
不 “似乎并不解析” 是什么意思?怎么了?你得到什么错误? – j08691 2013-05-07 13:38:27
你是什么意思“它不解析”?什么是错误? – Neal 2013-05-07 13:38:29
解析我的意思是