繁体   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