2013-01-08 59 views
2

我有我的頁面上有兩個容器:的jQuery插件的形式提交雙產生

<div id="foto_1"><span>Change foto</span><img src="" /></div> 
<div id="foto_2"><span>Change foto</span><img src="" /></div> 

,並形成插件包在我自己的函數.ajaxSubmit():

function imgUpload(div_id) { 

$('#myimgForm').submit(function(e){ 

    e.preventDefault(); 

    $(this).ajaxSubmit(
    { 
     target: '', 
     success: function(data) { 

     var new_data = data.split('.'); 
     var path = new_data[0]+'_sm.'+new_data[1]; 
     $('#foto_'+div_id+' img').attr('src', ''); 
     $('#foto_'+div_id+' img').attr('src', path); 

     }, 
     resetForm: true 

    }); 
    return false; 
    }); 
} 

然後,我打電話給我的功能:

$('#foto_1 span').click(function(){ 

    imgUpload(1); 
}); 

$('#foto_2 span').click(function(){ 

    imgUpload(2); 
}); 

所以問題在於,當我點擊第二個容器時,.ajaxsubmit()執行了兩次。什麼原因?我點擊之前試圖解除綁定(「現場」),也簡單綁定()和簡單的點擊() - 沒有變化......請幫助

下面是一個HTML表單:

<form method="post" enctype="multipart/form-data" id="myimgForm" name="myimgForm" action="/save_image_form.php"> 
    <div id="imgForm_div"> 
     <div id="img_input"><input type="file" name="caret" /></div> 
     <input type="button" id="cancel_img" value="Cancel" /> 
     <input type="submit" value="Upload" /> 
    </div> 
</form> 

回答

1

你有沒有嘗試

$('#myimgForm').submit(function(e){ 

    e.preventDefault(); 

    $(this).ajaxSubmit(
    { 

請注意,live()已棄用。

+0

是的,我試過這種方式,沒有變化( – Cadenzar

+0

請顯示錶格的HTML源代碼 – AlecTMH

+0

我將html表單添加到問題 – Cadenzar