复选框不起作用

时间:2015-08-04 11:47:51

标签: javascript html

我有一个带有javascript复选框的简单代码。你可以在这个网站上看到前端:
englishforyou.ir
当您选中复选框时,总价格应显示新数字,但不会显示 我的所有代码都在一个页面中:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<div>
<div>    

 <?php
$title= "pen" ;
$penprice= 7 ;

?>
<form id="formpayment"  action="<?php echo  $urlname?>"  method="post"  > 
<p style="color:blue; font:11px">
 <input type="checkbox" id="check"  name="kol" />Please add the eraser (Add 5$)
 <br>
 </p>
  <table border="0" >
  <tr>
  <td><?php echo $title; ?>
  </td>
  <td ><input style="width: 60px; padding: 2px; border: 0px "  class="txt"  type="text" name="priceofpen" id="priceofpen" value="<?php echo $penprice ;?>   
  " readonly/>&nbsp$ 
  </td>
  <td>
  </td>
  </TR>
 <tr>
  <td><?php echo "Eraser price"; ?>   
  </td>
  <td  >  <input style="width: 50px; padding: 2px; border: 0px "  name="priceoferaser" class="txt" id="priceoferaser" value="0"  readonly="readonly" />  &nbsp; &nbsp;$
  </td>
  <td> 
  </td>
  </TR> 
  <tr>
  <td colspan="3"> <hr />    
  </td>
    </TR>
  <tr id="summation">
  <td>  Total:
  </td>
  <td>
  <input  style="width: 60px; padding: 2px; border: 0px " type=number name="total" id="total" value="<?php echo $penprice;?>"  readonly="readonly">$
  </td>
  <td>
  </td>
  </TR>
   </table>
    </p><br />
 </form>
  </div>
 </div>
 <script>
 $('#check').on('change',function(){
     var eraserprice = "5"

     var c=parseFloat(eraserprice)+ parseFloat(<?php echo $penprice;?>);
    if(this.checked)
     $('#total').val(    c     )&& $('#priceoferaser').val(   parseFloat(5000)    )  ) 

    else

        $('#total').val( <?php echo $penprice;?>)&& $('#priceoferaser').val(   parseFloat(0)    )

})
 </script>
</div>
</body>
</html>

4 个答案:

答案 0 :(得分:1)

你必须在.val(parseFloat(5000))

之后删除最后一个“)”
<script>
 $('#check').on('change',function(){
 var eraserprice = "5"

 var c=parseFloat(eraserprice)+ parseFloat(7);
if($(this).is(':checked'))
 $('#total').val(    c     )&& $('#priceoferaser').val(   parseFloat(5000)    )  

else

    $('#total').val( 7)&& $('#priceoferaser').val(   parseFloat(0)    )

})
 </script>

答案 1 :(得分:0)

你应该在搜索bug之前验证你的html和js:

SyntaxError: missing ; before statement -> englishforyou.ir:57:85

答案 2 :(得分:0)

您可能希望包含jQuery库。

删除on并在if语句之间添加代码。

$('youElemnt').change(function() {
    if ($(this).is(':checked')) {
         // Your code here. 
    }
});

修改1

检查控制台是否有任何错误,然后更新您的帖子。

答案 3 :(得分:0)

您使用的是jQuery函数,而不是Javascript。 编写干净的Javascript或包含jQuery库。