输入值切换非常快

时间:2019-02-24 10:07:29

标签: javascript html

我的提交输入为:-

<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。我不明白我在做什么错。请帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

问题是您的form元素,因为action没有定义,当未为form元素定义动作时,这意味着动作路径是相对的或指向当前页面,因此在您的示例表单提交给自己,提交后内容将刷新,因此clicked标题将更改为click(第一种状态)。 另一方面,Form是HTML页面,当您postget时,它的内容就会刷新。

更新

如果要保持按钮状态,最好将按钮移出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();
}