如何通过js控制刷新页面重复提交form表单问题

JavaScript020

如何通过js控制刷新页面重复提交form表单问题,第1张

1、用 javascript 设置一个变量,只允许提交一次;

参考如下:

<script type="text/javascript">

var checkSubmitFlg = false

function checkSubmit(){

if (checkSubmitFlg == true){

return false

}

checkSubmitFlg = true

return true

}

document.ondblclick =

function docondblclick(){

window.event.returnValue = false

}

document.onclick =

function doconclick(){

if (checkSubmitFlg){

window.event.returnValue = false

}

}

</script>

<form action="action.php" method="post" onsubmit="return checkSubmit()">

用 javascript 将提交按钮或者 img 置为 disable;

参考如下:

<form action="action.php" method="post" onsubmit="getElById('submitInput').disabled = truereturn true"> 

<img styleId="submitInput" src="images/ok_b.gif" border="0" />

</form>

建议使用ref,给button添加注册ref引用,然后在表单提交的时候,获取button按钮,使其disable置灰。

ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件。

<div id="app">

  <button ref="mybutton" type="primary" @click="save">保存</button>

</div> <script>

new Vue({

  el: "#app",

  data: {

  },

  methods: {

   save() {

     this.$refs.mybutton.disabled = true

    }

  }

})

</script>

<style>

:disabled{   

    border: 1px solid #DDD   

    background-color: #F5F5F5   

    color:#ACA899   

}  

</style>

定义一个变量。

var flag= 0

如果flag=0 就让提交

在提交后,数据没有返回来前,将flag=1

数据返回来后再设置成0

这样就能防止重复提交。非常有效。