2014-10-20 41 views
1

我在这里有代码,如果复选框被选中,它会乘以复选框的值和下拉列表的值,并将产品显示到文本区域。我的问题是,即使复选框没有检查,当您更改Dropbox的值时,仍然执行操作并显示值的乘积。并且如果我未选中该复选框,它不带回文本区域的价值为0。下面是代码如何将值恢复为默认的文本区域?

<table align=center border=1> 
    <tr colspan=3> 
     <td colspan=3><h2>Specialty Cakes</h2></td> 
    </tr> 
    <tr> 
     <td><center><img src=special\blackforest_small.jpg ><br>Black Forest</center></td> 
     <td><input type="checkbox" id="check1" name="check1" value="550.00"onclick="special1()">Buy P550.00</input><br><input type="text" id="total1" name="total1" value="P0.00"size="8"></input><br> 
     QTY: <select id="qty1" name="qty1" onchange="special1()"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
      <option value="7">7</option> 
      <option value="8">8</option> 
      <option value="9">9</option> 
     </select> 
    </td> 
    </tr> 
</table> 

<script> 
    function special1(){ 
     var m = document.getElementById("check1").checked; 
     var x = document.getElementById("check1").value; 
     var y = document.getElementById("qty1").value; 
     var z = 0; 
     if (m = true){ 
      z = "P" + x * y; 
     } 
     document.getElementById("total1").value = z; 
    } 
</script> 
+0

您应该使用'=='或'==='来比较而不是'='。在标记中也没有'textarea'元素,'input'是一个_void_元素,它没有结束标记。 – undefined 2014-10-20 05:50:05

回答

1

请把这个

if (m = true){ 
z = "P" + x * y; 
} 

喜欢下面

您应该使用“==”运算符进行比较

+1

它总是很好的解释答案;这对我们来说可能是显而易见的,但对他们来说并不总是显而易见的。 – Daedalus 2014-10-20 05:58:25

+0

好的@达达鲁斯我编辑了我的答案,并感谢您的建议。 – Choco 2014-10-20 06:00:51