首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在单击时调用函数的按钮会使页面重新加载

问为什么在单击时调用函数的按钮会使页面重新加载
EN

Stack Overflow用户
提问于 2020-07-09 20:56:12
回答 3查看 34关注 0票数 0

我正在开发一个使用javascript创建段落的表单。由于某种原因,当我单击按钮时,它会强制我的页面重新加载。你们谁能告诉我我哪里做错了?

​

代码语言:javascript
复制
console.log('everything is linked')
function createParagraph() {
    console.log('function called');
    var wordOne=document.getElementById('textOne').value
    var wordTwo=document.getElementById('testTwo').value

    var paragraph = '<p>My first word is' + wordOne+'. My Second word is '+ wordTwo+'.</p>';

    document.getElementById('answer').innerHTML= paragraph
}
代码语言:javascript
复制
<body>
    <form action="">
        <input id='textOne' type="text">
        <input id='textTwo' type="text">
        <button onclick="createParagraph()">Click Me</button>
    </form>
    
    <div id="answer"></div>

    <script src="app.js"></script>
</body>

​

EN

回答 3

Stack Overflow用户

发布于 2020-07-09 21:00:04

<form>中的<button>的默认行为是提交该表单。将按钮的type设置为显式不为"submit":

代码语言:javascript
复制
<button type="button" onclick="createParagraph()">Click Me</button>

此外,如果您不需要实际的<form> (不想提交它),那么最好将其删除:

代码语言:javascript
复制
<body>
    <input id='textOne' type="text">
    <input id='textTwo' type="text">
    <button type="button" onclick="createParagraph()">Click Me</button>
    
    <div id="answer"></div>

    <script src="app.js"></script>
</body>

这样一来,一开始就不会意外地提交任何东西。

票数 1
EN

Stack Overflow用户

发布于 2020-07-09 21:00:15

您的按钮充当提交按钮,因此您的表单正在被提交。为了防止出现这种情况,您可以在表单上使用attribute onSubmit并阻止发送表单。

代码语言:javascript
复制
<form onSubmit="return false">
票数 1
EN

Stack Overflow用户

发布于 2020-07-09 21:03:04

因为按钮在表单中,并且表单可能已提交。

添加不提交表单的type="button"。

​

代码语言:javascript
复制
console.log('everything is linked')
function createParagraph() {
    console.log('function called');
    var wordOne=document.getElementById('textOne').value
    var wordTwo=document.getElementById('testTwo').value

    var paragraph = '<p>My first word is' + wordOne+'. My Second word is '+ wordTwo+'.</p>';

    document.getElementById('answer').innerHTML= paragraph
}
代码语言:javascript
复制
<body>
    <form action="">
        <input id='textOne' type="text">
        <input id='textTwo' type="text">
        <button type="button" onclick="createParagraph()">Click Me</button>
    </form>
    
    <div id="answer"></div>

    <script src="app.js"></script>
</body>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62815349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档