[英]Javascript: Dynamically created button disappears?
我是Java语言的新手。 我想在用户单击“创建元素”按钮时动态创建一个新按钮。 该脚本会创建一个按钮,但只持续一秒钟。 同样,未为按钮设置“值”属性。
如果行为背后有任何理论依据,请将我重定向到正确的URL。
这是代码:
<html>
<head>
<script type="text/javascript">
function doSomething(){
myButton = document.createElement("button");
myButton.setAttribute("value","New Button");
document.getElementById("myForm").appendChild(myButton);
}
</script>
</head>
<body>
<form id="myForm">
<button name="myButton" id="myButtonID" onclick="doSomething()">Create Element</button>
</form>
</body>
</html>
<button>
元素默认是一个提交按钮-因此,您正在提交表单,从而导致页面的重新加载。
您需要使用:
<button type="button" ...>...</button>
要么:
<input type="button" ...>
您的onclick回调必须返回false。
<button name="myButton" id="myButtonID" onclick="doSomething(); return false">
我不会那样创建按钮。 我会做这样的事情:
myButton = document.createElement('input');
myButton.setAttribute("type","button");
如前所述,使用“输入”代替“按钮”。 因为“按钮”导致页面刷新的回发。 通过使用“输入”,您将不会获得回发
//在html页面中创建新元素
function createElement_Click()
{
// btn variable will contain a RAW html [<input></input>] object
var btn = document.createElement("input");
//So now we can manipulate its properties:
btn.type = "button"; //equal to (<input type="button"></input>) in html
//add some value to it
btn.value = "Click Me";
btn.id = "btnShow";
btn.onclick = function() { ShowMessage(); };
// step -1 put your newly created object into html
document.getElementById("myDiv").appendChild(btn);
}
function ShowMessage() {
alert("hello world");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.