按钮没有运行javascript

时间:2014-02-21 20:25:33

标签: javascript html forms

所以这应该是更改页面,这样当他们点击按钮时,它会显示他们在表单中选择的所有内容,但它没有做任何事情。它似乎根本没有运行脚本,我不知道是什么。

...more form stuff up here    
<button type="button" onclick="total(this.form)">Get my Total</button>

    <p id="subtotal"></p>

    <input type="submit">
    </form>

    <script>
    function total(form)
    {
    var SynCr= form.Synth.value;
    document.getElementById("subtotal").innerHTML="You have ordered: <br>"+SynCr+" Synth");
    }
    </script>

2 个答案:

答案 0 :(得分:3)

您的问题是onclick="total(this.form)"。调用处理程序时this指的是没有表单作为成员的按钮。

尝试改为:

onclick="total(document.getElementById('formId'))"

答案 1 :(得分:0)

首先: this.form不会返回父表单。 第二:您的语法错误:document.getElementById("subtotal").innerHTML="You have ordered: <br>"+SynCr+" Synth");最后)不应该出现。

以下是代码的内容,向您展示了如何调试代码的工作原理:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
<form id="hgg">
  <input type="text" name="Synth" value="" />
  <button type="button" onclick="total(this)">Get my Total</button>
  </form>
  <div id="subtotal">
    <p>5518</p>
  </div>
  <script>
    function total(button)
    {
      form1 = button.parentNode;
      alert(form1.Synth.value)
      /*alert(p.id)
      alert("555");*/
     SynCr= form1.Synth.value;
      alert(SynCr)
   k = document.getElementById("subtotal");
      k.innerHTML = "You have ordered: <br>"+SynCr+"Synth";
    }
    </script>


</body>
</html>

请看这个在线演示:http://jsbin.com/voruzumi/1/