这里我创建了反向字符串并将其设置为“p”标签,但是当我点击Button时,它将“p”中的值设置为秒,然后将其清除
问:我知道这是因为“形式”标签,但为什么会发生这种情况? 的使用Javascript:function abc()
{
var str=document.getElementById("srcString").value;
document.getElementById("ans").innerHTML=str.split("").reverse().join("");;
}
HTML
<form method="GET">
<input type="text" id="srcString" placeholder="Enter something...">
<button onClick="abc()">click</button>
<p id="ans"></p>
<form>
答案 0 :(得分:1)
我认为避免表单提交和页面重新加载的最简单方法是将按钮type
设置为button
而不是标准类型submit
。的 jsFiddle 强>
<form method="GET">
<input type="text" id="srcString" placeholder="Enter something..." />
<button type="button" onClick="abc()">click</button>
<p id="ans"></p>
<form>
答案 1 :(得分:0)
我的猜测是,因为该方法是GET,它只是刷新页面,而是尝试POST
答案 2 :(得分:0)
很可能你正在重新加载页面。 尝试从你的abc函数返回false来取消提交表单。
答案 3 :(得分:0)
使用onsubmit="return false;"
<form method="GET" onsubmit="return false;">
<input type="text" id="srcString" placeholder="Enter something...">
<button onClick="abc()">click</button>
<p id="ans"></p>
<form>
答案 4 :(得分:0)
单击该按钮时,会设置<p>
标记,但会提交表单,从而导致页面刷新。解决此问题的方法是取消表单提交。
将您的代码更改为:
function abc() {
var str = document.getElementById("srcString").value;
document.getElementById("ans").innerHTML = str.split("").reverse().join("");
return false; //return false to cancel form submit
}
<form method="GET">
<input type="text" id="srcString" placeholder="Enter something...">
<button onClick="return abc()">click</button>
<p id="ans"></p>
<form>
答案 5 :(得分:0)
添加按钮类型属性以避免页面重新加载和刷新问题。