单击时按钮不执行任何操作

时间:2014-09-14 13:13:54

标签: javascript html

我真的很感激这里的一点帮助。只是一个计算JavaScript中几个项目成本的基本表单。我想我错过了一些关键的东西,但我看不到它。我确信这是一个非常简单的解决方案,我一直在看它太久了,这让我感到很沮丧。

现在,单击时,我的“计算总计”按钮不会执行任何操作。

<form name="calc" id="books">

    Full Name: <input type="text" name="firstname"><br>



    <br>
    <br>

    <input id="b1" type="checkbox" name="b1" value="book1">book 1   $159.00              Quantity: <input id="bq1" type="number"  size="2" value="1" ><br/>
    <input id="b2" type="checkbox" name="b2" value="book2">book 2   $250.00              Quantity: <input id="bq2" type="number"  size="2" value="1" ><br/>
    <input id="b3" type="checkbox" name="b3" value="book3">book 3   $178.50              Quantity: <input id="bq3" type="number"  size="2" value="1" ><br/>
    <input id="b4" type="checkbox" name="b4" value="book4">book 4   $143.00              Quantity: <input id="bq4" type="number"  size="2" value="1" ><br/>

    <br/>
    <br/>


    <input type="radio" name="campus" value="surface">Surface Mail<br>
    <input type="radio" name="campus" value="air">Air mail

    <br/>
    <br/> 

    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
    <input type="button" onclick="calcmyTotal()" value="Calculate myTotal">

</form>
<p></p>
<script type="text/javascript">


    function myFunction() {
    document.getElementById("books").reset();

}


    function calcmyTotal(){ 

        if(document.calc.b1.checked){
            myTotal = document.getElementById("bq1")*159;


        }
        else
            if(document.calc.b2.checked){
                myTotal = document.getElementById("bq2")*250;


            }
            else
                if(document.calc.b3.checked){
                myTotal = document.getElementById("bq3")*178;


                }
                else
                    if(document.calc.b4.checked){
                    myTotal = document.getElementById("bq3")*143;


                    {
                    else{
                        alert("no books have been selected")
                    }


        document.write(myTotal); 


    }
    </script>

2 个答案:

答案 0 :(得分:1)

方法是

document.getElementById

getElementById

其他错误/问题是

  • 语法错误
  • document.write将从页面中删除所有HTML
  • 要获取HTML表单输入的值,请执行document.getElementById("bq2").value

请阅读我对如何提问的问题的评论

            else
                if(document.calc.b4.checked){
                myTotal = document.getElementById("bq3")*143;


                { // Syntax error: should be }

答案 1 :(得分:0)

以下代码中存在语法错误:

if(document.calc.b4.checked){
   myTotal = document.getElementById("bq3")*143;
{ // <------------ here
else{
   alert("no books have been selected")
}

应该是

if(document.calc.b4.checked){
   myTotal = document.getElementById("bq3")*143;
}
else{
   alert("no books have been selected")
}

除此之外,document.getElementById()方法返回对HTMLElement的引用。您应该使用它的value属性来访问其中的值,例如

myTotal = document.getElementById("bq3").value *143;

Working Demo

在某种意义上工作正常 - 根据您当前的逻辑正常工作 - 点击calculate total按钮,document.write使用myTotal中的值重写页面