JavaScript 语法错误,缺少 ";"

标签 javascript php json

我的表单在 php.ini 中定义的表单中存在潜在错误。我使用 javascript 根据是否存在错误来更改表单操作。我已经使用 json_encode 转换了 php 错误变量 $errors,这样我就可以在 javascript 中使用它。在 Firefox 中运行该文件,我在 Firebug 中收到以下错误:

Syntax error: missing ;

在语句varErrors = "{"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 对我来说是新的。 感谢 stackoverflow 可以提供的任何帮助。

最佳答案

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); ?>;

关于JavaScript 语法错误,缺少 ";",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23434429/

相关文章:

javascript - 在 ApostropeCMS 中编辑时添加只读字段

javascript - Webkit 和 Moz Transform,取决于浏览器

javascript - 关于jquery ajax,php文件已运行但成功功能不起作用

php - json_encode() 适用于一个字符串而不适用于另一个?

javascript - 遍历 json 数据并匹配到一个数组

javascript - 在 HTML5 中切换音频和视频标签

javascript - 在 JavaScript 中使用 PHP 的值

php - 根据另一个单元格的值在查询中连接 mysql 表

javascript - 如何在节点处将HTML代码添加到D3树形图?

javascript - 如何防止谷歌索引 &lt;script type ="application/json"> 内容