我尝试在没有任何按钮的情况下自动计算输入。我尝试用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>
答案 0 :(得分:1)
嗯,有一些问题:
您永远不会拥有>
代码的结尾<table>
:
<table border=1 width='600'
=&gt; <table border=1 width='600'>
当代码甚至不是PHP也不是JavaScript时,你有一个随机的";
:
<th>Total</th>
</tr>";
您正在使用PHP标记作为echo标记:
<?php $price ?>
=&gt; <?php echo $price ?>
调用JavaScript函数时,永远不要关闭双引号:
onchange="jsfunction()
=&gt; onchange="jsfunction()"
修改强>:
如果您的name
属性为NULL,则可能会导致问题,因为id
将设置为名称,因此您应该将名称用引号括起来(为了安全起见,您可能应该这样做它包含id
,size
,name
等所有内容:
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将调用为空值。