jquery.form.js是一款基于jQuery的表單插件,可以使表單的提交變得更加可控和方便。然而,在使用jquery.form.js進(jìn)行圖片上傳時(shí),可能會(huì)出現(xiàn)圖片重復(fù)提交的問題。
原因是因?yàn)閖query.form.js會(huì)將表單的提交請(qǐng)求轉(zhuǎn)化為ajax請(qǐng)求,因此如果用戶在上傳圖片時(shí),不小心雙擊了上傳按鈕,那么就會(huì)發(fā)出兩個(gè)ajax請(qǐng)求,導(dǎo)致圖片重復(fù)提交。
解決這個(gè)問題的方法是,在提交表單前,先禁用上傳按鈕,提交完成后再啟用。這樣即使用戶多次點(diǎn)擊上傳按鈕,也只會(huì)發(fā)出一次ajax請(qǐng)求。
<form id="upload-form" action="upload.php" method="post"> <input type="file" name="image" id="image"> <input type="submit" id="submit-btn" value="上傳"> </form> <script> $('#upload-form').submit(function() { $('#submit-btn').attr('disabled', true); $(this).ajaxSubmit({ success: function() { $('#submit-btn').attr('disabled', false); alert('上傳完成'); } }); return false; }); </script>
在上面的代碼中,我們使用submit事件來捕捉表單的提交,然后禁用上傳按鈕。當(dāng)ajax請(qǐng)求完成后,再啟用上傳按鈕。這個(gè)方法可以避免用戶多次點(diǎn)擊上傳按鈕,導(dǎo)致圖片重復(fù)提交。