我的提交输入为:-
<form method="POST">
<input onclick="myFunction()" type="submit" name="like" id="like" value="LIKE">
</form>
如果用户按下它,我想将其更改为"LIKED"
,如果再次按下,我想将其更改回"LIKE"
。为此,我编写了以下JS代码:-
<script>
function myFunction() {
var x=document.getElementById("like");
if(x.value=="LIKE") x.value="LIKED";
else x.value="LIKE";
}
</script>
现在的问题是它确实发生了变化,但是这种变化只持续很小的时间。我可以看到它已更改为LIKED
,但很快就变回了LIKE
。我不明白我在做什么错。请帮忙。谢谢!
答案 0 :(得分:0)
问题是您的form
元素,因为action
没有定义,当未为form
元素定义动作时,这意味着动作路径是相对的或指向当前页面,因此在您的示例表单提交给自己,提交后内容将刷新,因此clicked
标题将更改为click
(第一种状态)。
另一方面,Form
是HTML页面,当您post
或get
时,它的内容就会刷新。
更新:
如果要保持按钮状态,最好将按钮移出form
之外,然后手动提交form
,例如:
<form id="myform" method="POST">
</form>
<input onclick="myFunction()" name="like" id="like" value="LIKE" type="button" >
function myFunction() {
var x=document.getElementById("like");
if(x.value=="LIKE") x.value="LIKED";
else x.value="LIKE";
document.getElementById("myform").submit();
}