我正在创建一个只有javascript和html的页面。我有两个问题。
当它以这种形式调用函数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>
我无法解决这个问题,但我跳过了它,因为它仍然会继续输入()下一次提交。
但在我的输入()中,我动态创建了一个表单。表单创建如下:
var form = document.createElement("form");
form.setAttribute("action","#");
form.setAttribute("onsubmit","solve()");
为什么?应该编辑什么?
感谢您的帮助。
solve()有这些代码行。这只是一个测试,如果它成功进入它但它失败了。这只会删除所有元素。
var container = document.getElementById("container");
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
答案 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;。