【问题标题】:javascript syntax error, missing ";"javascript 语法错误,缺少“;”
【发布时间】: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 对我来说是新的。 感谢 stackoverflow 提供的任何帮助。

【问题讨论】:

  • 当你回显$errors时,json_encode很可能输出双引号。
  • 试试var errors = '&lt;?php echo json_encode($errors); ?&gt;';
  • 另外,javascript 没有empty 函数,除非你自己在某个地方编写并定义了它。
  • var errors = "{"first... 绝对不是有效的语法。正确使用双引号。
  • document.getElementById("regForm").onsubmit = function() 这行也会给你带来问题

标签: javascript php json


【解决方案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),如果我不能解决它,我会寻求更多帮助。卢钦安杰洛
猜你喜欢
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
相关资源
最近更新 更多