Попытка отправить форму с помощью метода jQuery.post и получения «Uncaught TypeError: Объект # <FormData> не имеет методы«упорядочивание»

голоса
0

Я пытаюсь вызвать мой метод загрузки, который собирается принять отправить форму с помощью метода JQuery поста, но при попытке следующим получать следующее сообщение об ошибке.

Uncaught TypeError: Объект # не имеет метод «Serialize

Код:

     function upload() {
        var dfg = new FormData(jQuery('form')[0]);
        alert(dfg);
        jQuery
    .post(
            'uplAttachment',
            {
                dfg: dfg.serialize()
            },
            function (data) {
                var la = data;
                if (la == null | la == '') {
                    alert(success);
                }
                else {
                    alert(failed);
                }
            });
    }

JSP-страница:

<body>
    <div style=text-align: center; margin-top: 60px;>
        <form enctype=multipart/form-data>
            Select file:
            <input type=file name=dataFile id=fileAttachment/><br/><br/>
                <div style=text-align: center; margin-top: 100px;>
                    <input style=cursor: pointer; onmouseover= onclick=upload() class=dialogbox type=submit value=Upload Report />
                </div>
        </form>
    </div>
</body>
Задан 26/02/2014 в 13:26
источник пользователем
На других языках...                            


2 ответов

голоса
0

вместо этого:

function upload() {
var dfg = new FormData(jQuery('form')[0]);

изменить это:

передать контекст текущего элемента, когда нажать на входе:

onclick="upload(this)"

затем обновить функцию следующим образом:

function upload(el) {
var dfg = jQuery(el).closest('form');

Так что ваш окончательный код должен быть таким:

HTML:

<input style="cursor: pointer;" onmouseover="" onclick="upload(this)" 
       class="dialogbox" type="submit" value="Upload Report" />

JQuery:

function upload(el) {
   var dfg = jQuery(el).closest('form');
   alert(dfg);
   jQuery.post('uplAttachment', {
      dfg: dfg.serialize()
   }, function (data) {
      var la = data;
      if (la == null | la == '') {
          alert("success");
      } else {
          alert("failed");
      }
   });
}
Ответил 26/02/2014 в 13:39
источник пользователем

голоса
0

Здесь вы создаете объект FormData как «ГПД».

var dfg=new FormData(jQuery('form')[0]);

нет метода сериализации () была определена в FormData, так что вы должны пройти жалким, хотя Аякса только.

ИЛИ

    function upload()
    {
        var dfg = new FormData(jQuery('form')[0]);
        $.ajax({
            url: 'uplAttachment',
            data: dfg,
            processData: false,
            contentType: false,
            type: 'POST',
            success: function(data){
                alert(data);
            }
        });
    }
Ответил 26/02/2014 в 13:34
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more