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 = '&lt;?php echo json_encode($errors); ?&gt;'; 另外,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 = &lt;?php echo json_encode($errors); ?&gt;;

【讨论】:

从每个受访者那里获得建议。 MarcB 和 a-h 是正确的。纠正一个错误通常会发现其他错误。我正在努力(试图学习更多的javascript),如果我不能解决它,我会寻求更多帮助。卢钦安杰洛

以上是关于javascript 语法错误,缺少“;”的主要内容,如果未能解决你的问题,请参考以下文章

缺少变量值时 Django 模板中的 Javascript 语法错误

详解JavaScript中的异常处理方法

在完全正确的参数列表后出现未捕获的语法错误:缺少)。

vs2008编译错误:error C2146: 语法错误 : 缺少“;”(在标识符“name”的前面)

显式链接错误 - 语法错误:缺少 ';'由 bazel 编译时在 '*' 之前

Jest with Styled Components 错误:解析预期 css 的语法错误:缺少“”