出于某种原因,我无法正确显示警报框(作为测试添加)。该功能似乎根本没有执行。你对我做错了什么有什么看法?
我的代码位于此处,附带结果。感谢您提前输入!
一个明显的问题是由于字符串常量中的引号导致的语法错误。例如,
h[0] = "<span style="color:red;">Please type a name!</span>";
应该
h[0] = "<span style=\"color:red;\">Please type a name!</span>";
或者
h[0] = '<span style="color:red;">Please type a name!</span>';
var h = new Array();
应该只是var h = [];
。
h[0] = "<span style="color:red;">Please type a name!</span>";
是无效的语法 - 你如何期望它知道"
终止字符串的意思?使用style='color:red'
(单引号)。
for(i in x)
不应该使用。
如前所述,绑定到表单的提交事件而不是按钮单击。并且不要为此使用内联处理程序,使用事件侦听器。
如果出现错误,您的处理程序需要return false;
阻止表单提交到服务器。
阅读gdoron 的答案并使用 JSLint。
您的代码中有很多错误!
在用 JSLint 测试你的代码后,我得到了这些错误:
错误:第 2 行字符 22 处的问题:使用数组文字符号 []。var x = 新数组();
第 9 行字符 22 处的问题:使用数组文字符号 []。var h = 新数组();
第 10 行字符 24 处的问题:缺少分号。h[0] = "
第 11 行字符 12 的问题:红色语句上的标签“颜色”。红色;
第 11 行字符 12 处的问题:需要一个赋值或函数调用,而是看到一个表达式。红色;
第 12 行字符 5 处的问题:需要一个赋值或函数调用,而是看到一个表达式。">请输入姓名!";
第 13 行字符 24 处的问题:缺少分号。h[1] = "
第 14 行字符 12 的问题:“颜色”已定义。红色;
第 14 行字符 12 的问题:红色语句上的标签“颜色”。红色;
第 14 行字符 12 处的问题:期望一个赋值或函数调用,而是看到一个表达式。红色;
第 15 行字符 5 处的问题:需要赋值或函数调用,但看到的是表达式。">您必须输入姓氏!";
第 16 行字符 24 处的问题:缺少分号。h[2] = "
第 17 行字符 12 处的问题:“颜色”已定义。红色;
第 17 行字符 12 处的问题:红色语句上的标签“颜色”。红色;
第 17 行字符 12 处的问题:需要一个赋值或函数调用,而是看到一个表达式。红色;
第 18 行字符 5 处的问题:需要赋值或函数调用,但看到的是表达式。">您必须输入有效的电子邮件地址!";
第 19 行字符 24 处的问题:缺少分号。h[3] = "
第 20 行字符 12 处的问题:“颜色”已定义。红色;
第 20 行字符 12 处的问题:红色语句上的标签“颜色”。红色;
第 20 行字符 12 处的问题:期望一个赋值或函数调用,而是看到一个表达式。红色;
第 21 行字符 5 处的问题:需要一个赋值或函数调用,而是看到一个表达式。">您必须输入密码!";
第 22 行字符 24 处的问题:缺少分号。h[4] = "
第 23 行字符 12 处的问题:“颜色”已定义。红色;
第 23 行字符 12 处的问题:红色语句上的标签“颜色”。红色;
第 23 行字符 12 处的问题:需要一个赋值或函数调用,而是看到一个表达式。红色;
第 24 行字符 5 处的问题:需要赋值或函数调用,但看到的是表达式。">您必须确认密码!";
第 26 行字符 26 处的问题:使用数组文字符号 []。var divs = new Array("mname", "mlname", "memail", "mpassword", "mconfirm");
第 26 行字符 26 处的问题:使用数组文字符号 []。var divs = new Array("mname", "mlname", "memail", "mpassword", "mconfirm");
第 26 行字符 26 处的问题:正在停止,无法继续。(72% 扫描)。
There are errors in these lines in ""
change to ''
h[0] = "<span style='color:red;'>Please type a name!</span>";
h[1] = "<span style='color:red;'>You must type a last name!</span>";
h[2] = "<span style='color:red;'>You must type a valid email address!</span>";
h[3] = "<span style='color:red;'>You must type a password!</span>";
h[4] = "<span style='color:red;'>You must confirm the password!</span>";
主要问题实际上在于您定义错误范围的方式,例如:
h[0] = "<span style="color:red;">Please type a name!</span>";
This is causing a syntax error because the quotes around the style are unescaped, causing them to end the string. That breaks the entire function. Escaping them will get you a long way:
h[0] = "<span style=\"color:red;\">Please type a name!</span>";
But you will also need to check keune's answer.