2015-01-28 3 views
0

Использование node.js/express/jade. Я хочу загрузить файл без обновления страницы, поэтому используйте функцию .on ('submit') в функции document.ready(), как показано ниже. Проблема в том, что POST происходит дважды, и я не могу понять, почему. Помощь была бы потрясающей.Файл upload document.ready .on ('submit') отправлен дважды

HTML:

<form id="upSchema" action="/setVSSUP/6" enctype="multipart/form-data" method="post"> 
    <table id="tblSFU" class="table table-striped table-hover table-condensed"> 
     <tbody> 
      <tr id="sVSFU"> 
       <td> 
        <input type="file" name="schemadoc"> 
       </td> 
       <td> 
        <button onclick="onSSFUp(6)">Upload</button> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
</form> 

стороне клиента Javscript:

function onSSFUp(key) { 
    $('#upSchema').submit(); 
} 

document.ready:

$(document).ready(function() { 
    $(document).on('submit','#upSchema', function(e) { 
    $('#schup').text('Starting Upload...'); 
    e.preventDefault(); 
    $(this).ajaxSubmit({ 
     error: function(xhr) { 
     $('#schup').text('Error: '+xhr.status); 
     }, 
     success: function(res) { 
     $('#schup').text('File upload Success: '+res.name); 
     } 
    }); 
    document.getElementById('btnSSFU').disabled = false; 
    return false; 
    }); 
}); 

Результирующая консоль:

POST /setVSSUP/6 200 81ms 
POST /setVSSUP/6 200 114ms 

ответ

1

Кнопка в форме запускает ее отправку. Затем вы добавляете дополнительное событие onclick к кнопке (onSSFUp (6)). Удалите событие onclick, и вы увидите, что форма по-прежнему отправляется, когда вы нажимаете кнопку.

+0

Абсолютно мертвый! Спасибо друг. – ImTalkingCode

+0

Нет проблем. Рад помочь. – markle976