2014-01-09 22 views
0

的javascript:jQuery的形式做了一段普通的HTML後

(function(){ 
     $('form').ajaxForm({ 
      beforeSend:function(){ 
       $('.bar').width('0%'); 
       $('#output').empty(); 
      }, 
      uploadProgress:function(event, position, total, percentComplete){ 
       $('.progress').show(); 
       $('.bar').width('0%'); 
      }, 
      complete:function(xhr){ 
       $('.progress').hide(); 
       $('.bar').width("100%"); 
       $('#output').html(xhr.responseText); 
      } 
     }); 
    })(); 


    $("#upload").change(function(){ 
      $("form").submit(); 
     }); 

HTML:

<form method="POST" action="upload_ajax.php" name="upload" enctype="multipart/form-data"> 
     <input id="upload" name="image" type="file"> 
    </form> 

我有一個輸入文件使用jquery.form.js後到PHP和輸出的消息div如果php檢測到上傳文件有問題。

我測試了幾次,它工作正常,但有時如果我嘗試點擊&選擇圖像非常快。它成爲正常的職位。我把它放在一個彈出框內,並使用jquery到load()的另一頁。因此,我將需要確保表單不會運行正常的HTML文章。

有什麼辦法解決這個問題?

回答

0

我還沒有複製過這個問題,但是您可以嘗試通過在change事件和keyup事件中包含preventDefault來防止輸入的默認操作。

$("#upload").change(function(event){ 
    event.preventDefault(); 
    $("form").submit(); 
}) 
.keyup(function(event) { 
    event.preventDefault(); 
}); 
+0

它沒有工作,我只是嘗試,它仍然有時發生 – Ben

+0

如果表單上沒有'action'屬性,它還會發生嗎? – Jonathan

+0

我只是做了很少的測試,我注意到這個問題是由load()造成的;當我關閉popBox div並點擊上傳按鈕時,popBox div再次加載內容並導致腳本問題,我已經將div更改爲iframe並且它現在完美工作,thx幫助欣賞! – Ben