我试图在HTML表单上创建一个按钮,向表单添加元素:
function createRow(){
var row = document.createElement('div');
var input=document.createElement('input');
input.setAttribute("type", "Textbox");
var time=document.createElement('input');
time.setAttribute("type", "Textbox");
row.appendChild(input);
row.appendChild(time);
return row;
}
function addRow(){
console.log("z");
var routes = document.getElementById("routes");
routes.appendChild(createRow());
return false;
}

<form id="routes">
<button onclick="addRow()">+</button>
</form>
&#13;
但是在每个按钮上单击页面重新加载,并在url中添加问号。 我找到了一对想法:
但没有效果。
请告诉我该怎么办?还有一些条件:
答案 0 :(得分:0)
button
的默认行为是提交。指定type=button
,它将覆盖此默认行为。
<button type="button" onclick="addRow()">+</button>
答案 1 :(得分:0)
return false
函数应为addRow()
。另外return false
需要<form id="routes">
<button onclick="return addRow()">+</button>
</form>
:
2017-03-07T18:06:54.958796+00:00 heroku[web.1]: Process running mem=701M(136.4%)
2017-03-07T18:06:54.958796+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
答案 2 :(得分:0)
好的,有一个在事件监听器上使用preventDefault的例子。
function createRow(){
var row = document.createElement('div');
var input=document.createElement('input');
var time=document.createElement('input');
input.setAttribute("type", "Textbox");
time.setAttribute("type", "Textbox");
row.appendChild(input);
row.appendChild(time);
return row;
}
function addRow(){
document.getElementById("routes").appendChild(createRow());
}
document.querySelector("button").addEventListener("click", function(event)
{
event.preventDefault();
addRow();
});
<form id="routes">
<button>+</button>
</form>
答案 3 :(得分:0)
在表单内部,HTML5按钮元素具有默认的提交类型。如果你给它一个&#34;按钮&#34;一切正常
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form id="routes">
<div><button type="button" onclick="addRow()">+</button></div>
</form>
<script type="text/javascript">
function createRow(){
var row = document.createElement('div');
var input=document.createElement('input');
input.setAttribute("type", "Textbox");
var time=document.createElement('input');
time.setAttribute("type", "Textbox");
row.appendChild(input);
row.appendChild(time);
console.log(row);
return row;
}
function addRow(){
console.log("z");
var routes = document.getElementById("routes");
routes.appendChild(createRow());
return false;
}
</script>
</body>
</html>
答案 4 :(得分:0)
将按钮设为id
并将preventDefault
放入$(document).ready(..)
功能
$(document).ready(function(){
$( "#routes_button" ).click(function( event ) {
event.preventDefault();
});
});
function createRow(){
var row = document.createElement('div');
var input=document.createElement('input');
input.setAttribute("type", "Textbox");
var time=document.createElement('input');
time.setAttribute("type", "Textbox");
row.appendChild(input);
row.appendChild(time);
return row;
}
function addRow(){
console.log("z");
var routes = document.getElementById("routes");
routes.appendChild(createRow());
return false;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<form id="routes">
<button id="routes_button" onclick="addRow()">+</button>
</form>
&#13;