Javascript无法执行函数 - onsubmit和action

时间:2014-11-25 15:37:56

标签: javascript html forms

我正在创建一个只有javascript和html的页面。我有两个问题。

  1. 当它以这种形式调用函数inputs()时,它在第一次失败并在下一次提交时成功。

    <div id="container"> <form onsubmit="inputs()" action="#"> Variables: <input type="number" id="vars" size="1" required/> Constraints: <input type="number" id="cons" size="1" required/> <input type="submit" value="Submit"> </form> </div>

  2. 我无法解决这个问题,但我跳过了它,因为它仍然会继续输入()下一次提交。

    但在我的输入()中,我动态创建了一个表单。表单创建如下:

       var form = document.createElement("form");
       form.setAttribute("action","#");
       form.setAttribute("onsubmit","solve()");
    
    1. 现在,当我提交动态创建的表单时,问题是它会回到第一组表单。没有调用solve()。
    2. 为什么?应该编辑什么?

      感谢您的帮助。

      solve()有这些代码行。这只是一个测试,如果它成功进入它但它失败了。这只会删除所有元素。

          var container = document.getElementById("container");
          while (container.hasChildNodes()) {
              container.removeChild(container.lastChild);
          }
      

2 个答案:

答案 0 :(得分:2)

这一行

form.setAttribute("onsubmit","solve()");

没有做你认为的事情。如果它在实际的html中它会工作但不是现在。它的作用就是让属性出现在控制台中。事件处理程序实际上并未设置。

而是通过onsubmit属性或addEventListener

进行
form.onsubmit = solve; // now it must work

答案 1 :(得分:0)

在函数求解结束时尝试返回false。这应该显示但不会执行操作。还要添加&#34; return solve()&#34;而不是&#34; solve()&#34;。