Onchange弹出错误javascript

时间:2014-02-16 06:32:31

标签: javascript php

我尝试在没有任何按钮的情况下自动计算输入。我尝试用javascript onchange函数来做。但是,javascript不断弹出错误,我不知道如何解决它。

这是错误:Uncaught SyntaxError: Unexpected identifier

下面是我的代码:

<!DOCTYPE html>
<html>

<script>
function jsfunction()
{
var x=document.getElementById("qty1");
var y =document.getElementById("price1");
var z =document.getElementById("total1");


   alert("You entered: " + y.value);


}
</script>

<body>
<?php
$item=array("A"=>"10","B"=>"11","C"=>"12","D"=>"13");
$var=1;
$total=0;
$gtotal=0;

?>
<table border=1 width='600'
<tr>
<th>No</th>
<th>item</th>
<th>Check</th>
<th>Price</th>
<th>Qty</th>
<th>Total</th>
</tr>";
<?php
foreach($item as $myItem=>$pricetag){
echo "<tr>";
echo "<td>".$var."</td>";
echo "<td>".$myItem."</td>";
$price = "price". $var;
$qty = "qty". $var;
$total = "total". $var;
?>

<td><input type="checkbox" id="chkbox" name="chkbox"/></td>
<td><input type="text" name=<?php $price ?> id=<?php $price ?>  size =1/><?php  echo $price ?> </td>
<td><input type="text" onchange="jsfunction() name=<?php $qty ?> id=<?php $qty ?> size =1/><?php echo $qty ?></td>
<td><input type="text" name=<?php $total ?> id=<?php $total ?> size =1/></td>


<?php
$var++;
}?>


</table>
</form>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

嗯,有一些问题:

  1. 您永远不会拥有>代码的结尾<table>

    <table border=1 width='600' =&gt; <table border=1 width='600'>

  2. 当代码甚至不是PHP也不是JavaScript时,你有一个随机的";

    <th>Total</th>
    </tr>";
    
  3. 您正在使用PHP标记作为echo标记:

    <?php $price ?> =&gt; <?php echo $price ?>

  4. 调用JavaScript函数时,永远不要关闭双引号:

    onchange="jsfunction() =&gt; onchange="jsfunction()"

  5. 修改
    如果您的name属性为NULL,则可能会导致问题,因为id将设置为名称,因此您应该将名称用引号括起来(为了安全起见,您可能应该这样做它包含idsizename等所有内容:

    name=<?php $price ?> =&gt; name="<?php $price ?>"

答案 1 :(得分:0)

除此之外,此行还有一个JavaScript错误:

<td><input type="text" onchange="jsfunction() name=<?php $qty ?> id=<?php $qty ?> size =1/><?php echo $qty ?></td>

应该是:

<td><input type="text" onchange="jsfunction()" name="<?php echo $qty; ?>" id="<?php echo $qty; ?>" size="1" /><?php echo $qty; ?></td>

您必须使用echo函数将PHP变量打印到HTML。

此外,在整个HTML表单中,不要忘记将所有输入参数值包装在引号(“”)中。

答案 2 :(得分:0)

$price的价值是多少?您正在按其ID获取元素,例如price1,但如果$price不等于字符串'price1',则无法通过该ID获取元素,并且您的javascript将调用为空值。