未捕获的ReferenceError:赋值中的左侧无效

Uncaught ReferenceError: Invalid left-hand side in assignment

本文关键字:无效 赋值 ReferenceError      更新时间:2023-09-26

我从JavaScript代码中收到此错误

Uncaught ReferenceError: Invalid left-hand side in assignment 

这是我的代码:

<script type="text/javascript">
function repartition()
{
    var principal_p             = <?php echo $data23['principal_p'] ;?>; 
    var principal_c             = <?php echo $data23['principal_c'] ;?>; 
    var interets_p              = <?php echo $data23['interets_p'] ;?>; 
    var interets_c              = <?php echo $data23['interets_c'] ;?>; 
    var clause_penale_p         = <?php echo $data23['clause_penale_p'] ;?>; 
    var clause_penale_c         = <?php echo $data23['clause_penale_c'] ;?>;
    var domages_interets_p      = <?php echo $data23['domages_interets_p'] ;?>;
    var domages_interets_c      = <?php echo $data23['domages_interets_c'] ;?>;
    var art700_cpc_p            = <?php echo $data23['art700_cpc_p'] ;?>;
    var art700_cpc_c            = <?php echo $data23['art700_cpc_c'] ;?>;
    var art475_1_cpp_p          = <?php echo $data23['art475_1_cpp_p'] ;?>;
    var art475_1_cpp_c          = <?php echo $data23['art475_1_cpp_c'] ;?>;
    var art_441_6_cc_p          = <?php echo $data23['art_441_6_cc_p'] ;?>;
    var art_441_6_cc_c          = <?php echo $data23['art_441_6_cc_c'] ;?>;
    var frais_ar_p              = <?php echo $data23['frais_ar_p'] ;?>; 
    var frais_ar_c              = <?php echo $data23['frais_ar_c'] ;?>;
    var agios_p                 = <?php echo $data23['agios_p'] ;?>; 
    var agios_c                 = <?php echo $data23['agios_c'] ;?>;
    var depens_p                = <?php echo $data23['depens_p'] ;?>; 
    var depens_c                = <?php echo $data23['depens_c'] ;?>;   
    var frais_execution_p       = <?php echo $data23['frais_execution_p'] ;?>; 
    var frais_execution_c       = <?php echo $data23['frais_execution_c'] ;?>;  
    var contrib_aid_juridiq_p   = <?php echo $data23['contrib_aid_juridiq_p'] ;?>;
    var contrib_aid_juridiq_c   = <?php echo $data23['contrib_aid_juridiq_c'] ;?>;  
    var frais_greffe_p          = <?php echo $data23['frais_greffe_p'] ;?>;
    var frais_greffe_c          = <?php echo $data23['frais_greffe_c'] ;?>;
    principal = document.getElementsByName("principal_s");
    document.getElementsById(nprincipal)= (principal*principal_p)/100;
}
</script>

导致错误的行是包含document.getElementsById的行。为什么会导致错误?

您试图分配函数调用的结果,而该函数调用从来不是可以分配的引用,而是一个值,因此您无法分配给它。这就是为什么会出现此错误。


至于修复您的代码,这超出了范围。我可以帮你猜一下:

您可以将元素的.innerHTML设置为如下值:

   document.getElementById("nprincipal").innerHTML = (principal[0].value*principal_p)/100;

我还修复了:

  • getElementsById应为getElementById
  • principal是我认为是单个输入元素的活动节点列表,所以我通过[0].value获取它的.value
  • getElementById中使用字符串,因为代码中未定义nprincipal

您想在代码中做什么?在您将计算结果分配给DOM元素的时候,如果您想在页面上显示结果,那么您可能需要这样做:

document.getElementById(nprincipal).innerHTML = (principal*principal_p)/100;
document.getElementsById(nprincipal)= (principal*principal_p)/100;

是错误。。。如果它是某种形式元素,它应该是

document.getElementById(nprincipal).value= (principal*principal_p)/100;

编辑

还有

principal = document.getElementByName("principal_s");

应该是

principal = document.getElementByName("principal_s").value;

扩展我对操作的评论

查看json和javascript对象。这将为您省去从php到javascript:解析数据的许多麻烦

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

这将使对象看起来像这样:

{
    principal_p: <?php echo $data23['principal_p'] ;?>,
    principal_c: <?php echo $data23['principal_c'] ;?>,
    interets_p: <?php echo $data23['interets_p'] ;?>, 
    interets_c: <?php echo $data23['interets_c'] ;?>,
    ....
}

现在可以参考data23.principal_p来获得从<?php echo $data23['principal_p'] ;?>解析的数据。

这不是答案,因为我可以看到,当您尝试将计算附加到DOM节点时,您遗漏了一些内容。

PHP.net json_encode

使用此:

document.getElementsById("nprincipal").value = (principal*principal_p)/100;

document.getElementsById("nprincipal").innerHTML = (principal*principal_p)/100;