[英]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.