簡體   English   中英

Javascript:動態創建的按鈕消失了嗎?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM