2015-08-21 4 views
0

У меня есть форма Ajax, которую мне нужно отправить, как только пользователь выбирает изображение. Проблема в том, что форма не отправляется. Пожалуйста, любое руководство будет оцененОтправить Ajaxform при изменении

--The форма ---

<form id="bgimageform" method="post" enctype="multipart/form-data" action="process.php"> 
    <div class="uploadFile timelineUploadBG"> 
     <input type="hidden" name = "bkg" value = "1"/> 
     <input type="file" name="photoimg" id="bgphotoimg" class="custom-file-input"> 

    </div> 

</form> 

--- The кода JS ---

<script src="js/jquery-1.7.1.min.js"></script> 
<script src="js/jquery.form.js"></script> 
<script src="/js/jquery-ui.min.js"></script> 
<script src="js/jquery.wallform.js"></script> 
<script> 
$(document).ready(function() { 

    /* Uploading Profile BackGround Image */ 
    $('body').on('change','#bgphotoimg', function() { 

    $("#bgimageform").ajaxForm({target:'#timelineBackground'}).submit(); 

    }); 
}); 
</script> 
+0

Рассматривали ли вы с помощью Dropzone.js? По умолчанию, как только элемент будет добавлен, он «отправит». Вы также можете перетащить изображение. –

+0

Нет, я не знаю, пожалуйста, у вас есть ссылка, где я могу ее найти? –

+0

Поиск dropzone.js должен найти его, но независимо: http://www.dropzonejs.com/ –

ответ

0

Вы правы, что первая попытка была далеко ,

В любом случае, я провел несколько тестов, и кажется, что если вы это сделаете, это сработает.

$('body').on('change','#bgphotoimg', function() { 
    alert("It should have submitted."); 
}); 

Вот скрипка, демонстрирующая его. http://jsfiddle.net/gt9e160f/

Поэтому я должен был бы указать на ваш метод отправки, потому что на изменение, безусловно, называется.

Я никогда не использовал jquery.form.js раньше, но из их документы я вытащил это:

$(function(){ 

    //bind the form's submit to ajaxForm 
    $("body").on('submit', '#bgimageform', function(e){ 
     $(this).ajaxForm({target:'#timelineBackground'}); 
     e.preventDefault(); 
     return false; 
    }); 

    /* Uploading Profile BackGround Image */ 
    $('body').on('change','#bgphotoimg', function() { 
     //submit the form 
     $("#bgimageform").submit(); 
    }); 
}); 
+0

еще не повезло .. :(.. –

+0

Функция оповещения работает, но представление формы является проблемой. Если, если я поместил функцию оповещения после этой строки, $ ('# bgimageform'). AjaxForm ({target: '# timelineBackground'}).(), это не работает. В этой строке странно .. –

+0

Еще одно редактирование, надеюсь, это сработает. В противном случае у меня нет идей;) –

0

попробовать этот

$("body").on('change','input#bgphotoimg', function() { 
    $('#bgimageform').submit(AjaxCall); 
}); 
function AjaxCall(){ 
    // ajax call here 
    $.ajax({ 
    type: "POST", 
    url: "url", 
    data: {}, 
    success: function(data) { 
     // code here 
     console.log(data); 
    } 
    }); 
    return false; 
}