javascript 语法错误,缺少“;”
Posted
技术标签:
【中文标题】javascript 语法错误,缺少“;”【英文标题】:javascript syntax error, missing ";" 【发布时间】:2014-05-02 18:12:39 【问题描述】:我有一个在 php.ini 中定义的表单中存在潜在错误的表单。我使用 javascript 根据是否存在错误来更改表单操作。我已经使用 json_encode 转换了 php 错误变量 $errors,所以我可以在 javascript 中使用它。在 Firefox 中运行该文件我在 Firebug 中收到以下错误:
语法错误:缺失;
before 语句 var errors = ""firstnameErr:......etc
,指针指向 firstnameErr 中的字母 f。看起来我在 json_encode 对象中有错误。
这里是javascript:
<script type = "text/javascript">
function switchFormAction()
var errors = [];
var errors = "<?php echo json_encode($errors); ?>";
if(!empty(errors))
alert("Please correct these errors");
else
var element = document.getElementById("regForm");
element.setAttribute("action", "serraInsertForm.php");
return true;
window.onload = function()
document.getElementById("regForm").onsubmit = function()
switchFormAction();
</script>
可能是一些简单的事情,但我无法解决。 Javascript 和 json 对我来说是新的。 感谢 *** 提供的任何帮助。
【问题讨论】:
当你回显$errors
时,json_encode很可能输出双引号。
试试var errors = '<?php echo json_encode($errors); ?>';
另外,javascript 没有empty
函数,除非你自己在某个地方编写并定义了它。
var errors = ""first...
绝对不是有效的语法。正确使用双引号。
document.getElementById("regForm").onsubmit = function()
这行也会给你带来问题
【参考方案1】:
var errors = "<?php echo json_encode($errors); ?>";
^--- ^--
指示的引号不是必需的,实际上是导致问题的原因。 json_encode() 将生成将$errors
中的数据转换为语法有效的Javascript 所需的任何引号/括号。您正在制作:
var errors = ""somekey":"somevalue"";
^--start string
^--end string
^^^^^^^ undefined variable
你只需要
var errors = <?php echo json_encode($errors); ?>;
【讨论】:
谢谢,成功了!这部分代码现在可以正常工作了!【参考方案2】:在这里丢失引号应该这样做。
var errors = "<?php echo json_encode($errors); ?>";
应该是:
var errors = <?php echo json_encode($errors); ?>;
【讨论】:
从每个受访者那里获得建议。 MarcB 和 a-h 是正确的。纠正一个错误通常会发现其他错误。我正在努力(试图学习更多的javascript),如果我不能解决它,我会寻求更多帮助。卢钦安杰洛以上是关于javascript 语法错误,缺少“;”的主要内容,如果未能解决你的问题,请参考以下文章
缺少变量值时 Django 模板中的 Javascript 语法错误
vs2008编译错误:error C2146: 语法错误 : 缺少“;”(在标识符“name”的前面)