繁体   English   中英

javascript语法错误,缺少“;”

[英]javascript syntax error, missing “;”

我在php中定义的表单中存在潜在错误的表单。 我使用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可以提供的任何帮助。

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

应该在这里丢掉引号。

var errors = "<?php echo json_encode($errors); ?>";

应该可能是:

var errors = <?php echo json_encode($errors); ?>;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM