Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Submit формы (https://javascript.ru/forum/events/58146-submit-formy.html)

spirit1086 07.09.2015 14:18

Submit формы
 
Здравствуйте, подскажите как сделать чтобы submit формы нормально отработал в ie 7,8,9
В шаблоне такой тег привязано к классу ubtn
<span class="ubtn" style="width:150px;height:150px;display:inline-block;position: relative">Загрузить</span>

Динамически средствами js создается форма и iframe
<form action="upload.php" method="POST" enctype="multipart/form-data" id="uform" target="imgframe">
<input type="file" name="img_src" id="img_src">
</form>

<div><iframe name="imgframe" id="imgframe"></iframe></div>


При клике на .ubtn средствами jquery кликаю на inpyt type=file открывается окно выбора файла, затем при изменении происходит сабмит формы, но так понимаю форма уходит пустой. скал в инете не нашел точного ответа в чем проблема. Решил обратиться сюда может подскажите кто реализовывал уже .
Заметил если выбрать файл нажав на input type="file", то файл отправляется, если открыть input type="file" средствами jquery кликнув на .ubtn то ничего не происходит
$(".ubtn").click(function()
        { 
           $("#img_src").trigger("click");
        });
       
         
        $("#img_src").on('change', function() 
        {   
          $("#uform").trigger("submit"); 
        })

Vlasenko Fedor 07.09.2015 21:42

function buildElement(tagName, props) {
    var element = document.createElement(tagName);
    for (var propName in props) element[propName] = props[propName];
    return element;
}

function submit(link, props) {
    var form = buildElement('form', {method: 'post', action: link});
    for (var propName in props) form.appendChild( 
        buildElement('input', {type: 'hidden', name: propName, value: props[propName]})
    );
    document.body.appendChild(form);
    form.submit();
    document.body.removeChild(form);
}

submit('index.php', {name: 'Ivan', year: '25'});


Часовой пояс GMT +3, время: 00:56.