產生原因
- 如果網速慢的情況下,用戶點擊按鈕提交後,如果接口還沒有返回數據的話,用戶會不耐煩的再點擊一次提交按鈕
解決方法
- 最簡單的解決方法就是,把所有的按鈕都寫成 button 元素(注意需要加上type=button屬性,否則在火狐下默認是type=submit,很有可能點擊後會提交表單),如果是 div 元素的話,disabled屬性是失效的
用戶第一次點擊按鈕,將該按鈕設成成禁用狀態
$('button').attr('disabled', 'disabled');
這個時候,按鈕的點擊事件已經失效
當後臺返回數據後,再把禁用屬性移除
$('button').removeAttr('disabled');
這個時候,用戶可以考慮是否進行再一次提交
- 或者使用pointer-events: none