2016-04-21 5 views
1

FormData объект пуст для формы с 2 полями ввода. formData.getAll() logs a error TypeError: Not enough arguments to FormData.getAll.. Вот мой код:Объект FormData возвращается пустым даже для непустой формы

<!doctype html> 
<html lang="en"> 
    <head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 

    <script> 
     function test() { 
     var element = document.getElementById("invite-form"); 
     console.log(element); 
     var formdata = new FormData(element) 
     console.log(formdata.getAll()); 
     } 
    </script> 

    </head> 
    <body> 

    <form id="invite-form" method='POST' action=''> 
     <label for="email">Email...</label> 
     <input type="text" name="email" value="[email protected]"/> 
     <input type="hidden" name="csrf_token" value="random" /> 
     <button class="btn" onclick="test()">Button</button> 
    </form> 

    </body> 
</html> 

Я попытался заполнить FormData объект со значениями из формы по нажатию на кнопку

+0

Вы знаете, что 'GETALL()' метод имеет несколько пятнистую поддержку браузера, и работает действительно только в Chrome 50+ и 39+ Firefox – adeneo

+0

Да я понимаю, что, но я использую последнюю версию Firefox. Я просто хочу знать, что я делаю неправильно здесь –

+0

Это работает для меня в Firefox, но, как указано в [документации] (https://developer.mozilla.org/en-US/docs/Web/API/FormData/getAll), для этого требуется ключ, например 'formdata.getAll ('email')' – adeneo

ответ

4

В getAll() метод интерфейса FormData требует ключа, который будет дан.
Затем он возвращает все значения, связанные с этим ключом, из объекта FormData.

function test() { 
    var element = document.getElementById("invite-form"); 
    console.log(element); 
    var formdata = new FormData(element) 
    console.log(formdata.getAll('email')); // <- needs key 
}