Javascript 尝试创建<;李>;元素,但它会消失

Javascript 尝试创建<;李>;元素,但它会消失,javascript,html,Javascript,Html,我想使用JavaScript创建一个li元素。我被教导,这将工作,但它不是。当我点击提交按钮时,我在文本字段中写的内容会出现,然后很快消失。我该怎么办 函数addLi(){ var x=document.createElement(“LI”); var t=document.createTextNode(document.getElementById('text').value); x、 儿童(t); document.getElementById(“元素”).appendChild(x);

我想使用JavaScript创建一个li元素。我被教导,这将工作,但它不是。当我点击提交按钮时,我在文本字段中写的内容会出现,然后很快消失。我该怎么办

函数addLi(){
var x=document.createElement(“LI”);
var t=document.createTextNode(document.getElementById('text').value);
x、 儿童(t);
document.getElementById(“元素”).appendChild(x);
}

托多利斯特

费利克斯说的是真的。您的
提交
按钮正在提交
表单
,这将打开一个重新加载页面的请求。这是默认行为。您必须取消(也称为阻止)此行为才能使您的功能正常工作:

  • 您可以将
    return
    语句添加到
    form
    元素中的
    onSubmit
    事件中:

    <form onSubmit="return addLi();">
    
    然后添加
    event.preventDefault()在函数末尾

  • 您还可以取消
    提交
    并使用
    按钮
    ,默认情况下,该按钮不会提交
    表单

    <input type="button" value="Submit" onclick="addLi()" />
    
    
    


  • 尝试添加一个
    返回false在函数末尾。您的
    表格
    可能正在提交中。你的问题的一小部分是有效的,我想这是因为表单没有被提交。@DontVoteMeDown:单凭这一点是没有帮助的。但是原因是正确的。@FelixKling我尝试了一个不更改代码的建议,但是
    事件.preventDefault()
    会更准确。提交事件的默认操作是提交表单。这涉及对页面的HTTP请求并加载该页面。如果不希望发生这种情况,则必须阻止默认操作.event.preventDefault()?
    event.preventDefault()是最安全的操作。看这篇文章:我使用了你的第一个建议,它奏效了。我很高兴它能起作用,但我不太明白为什么它现在能起作用。你能解释一下原因吗?:)@AndreiseMedre如果您知道
    表单
    是如何工作的,您应该通过答案开头的解释来理解。你知道它是怎么工作的吗?@AndreiSimedre没关系。我的意思是,如果你仍然不知道一个
    表单是如何工作的,你应该去追它,否则它确实会被搞糊涂的。@Andreismedre记住。
    
    <input type="button" value="Submit" onclick="addLi()" />