解决form表单多次点击提交按钮,导致数据库添加多条重复数据
思路:控制住提交按钮的点击状态,点击一次后,锁定按钮,通过回调信息,重新解锁按钮. 代码如下:
function formSubmit ( ) {
var staffId = $ ( "#staff" ) . val ( ) ;
var time = $ ( "#time" ) . val ( ) ;
var staffTimeType = $ ( "#staffTimeType" ) . val ( ) ;
var applyCause = $ ( "#applyCause" ) . val ( ) ;
if ( staffId == 0 ) {
layer. msg ( "請選擇職員!" , { time: 1000 } ) ;
return false ;
}
if ( time == "" ) {
layer. msg ( "請選擇請假日期範圍!" , { time: 1000 } ) ;
return false ;
}
if ( staffTimeType == 0 ) {
layer. msg ( "請選擇請假類型!" , { time: 1000 } ) ;
return false ;
}
if ( applyCause == "" ) {
layer. msg ( "請輸入請假原因!" , { time: 1000 } ) ;
return false ;
}
$ ( "#submit" ) . attr ( "disabled" , true ) ;
var obj = new FormData ( document. getElementById ( "form-staffVacate" ) ) ;
$. fromAjax ( "staffVacate-submit" , obj, function ( data) {
if ( data. code == 1 ) {
$ ( "#submit" ) . attr ( "disabled" , false ) ;
setTimeout ( "refresh()" , 1000 ) ;
layer. msg ( '添加成功!' , { time: 1000 } ) ;
} else if ( data. code == 2 ) {
$ ( "#submit" ) . attr ( "disabled" , false ) ;
setTimeout ( "refresh()" , 1000 ) ;
layer. msg ( '修改成功!' , { time: 1000 } ) ;
}
} )
}