2015-12-30 4 views
1

Я хочу привести FormData в Консоль, чтобы проверить ключ и значение.Проверка ключа и значения FormData в консоли

var f = new FormData(); 
f.append('key1', 'value1'); 

console.log(f); 

f = new FormData(); 

console.log(f); // I wanna know: Does f keep the key `key1` and value `value1`? 

Когда я проверяю консоль, нигде я не вижу ключ и значение.

Можете ли вы дать мне подсказку?

+0

, потому что вы повторно назначить новый FormData возражают против этого. – Shyju

+0

@Shyju Это означает: я могу перезаписать 'key1'? Точно так же: 'f.append ('key1', 'value2')', не так ли? –

+0

Да, вы можете снова добавить новый объект – Shyju

ответ

1

Подход с использованием Web Workers API, FormData.entries(); смотри также Using Web Workers

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8" /> 
<title>MDN Example - Embedded worker</title> 
<script type="text/js-worker"> 
    // This script WON'T be parsed by JS engines 
    // because its mime-type is text/js-worker. 
    // var myVar = "Hello World!"; 
    var key = "key1"; 
    var value = "value1"; 
    // myVar.append('key1', 'value1'); 
    // Rest of your worker code goes here. 
</script> 
<script type="text/javascript"> 
    // This script WILL be parsed by JS engines 
    // because its mime-type is text/javascript. 
    function pageLog (sMsg) { 
    // Use a fragment: browser will only render/reflow once. 
    var oFragm = document.createDocumentFragment(); 
    oFragm.appendChild(document.createTextNode(sMsg)); 
    oFragm.appendChild(document.createElement("br")); 
    document.querySelector("#logDisplay").appendChild(oFragm); 
    } 
</script> 
<script type="text/js-worker"> 
    // This script WON'T be parsed by JS engines 
    // because its mime-type is text/js-worker. 
    onmessage = function (oEvent) { 
    var f = new FormData(); 
    f.append(key, value); 
    for(var pair of f.entries()) { 
     postMessage(pair[0] + ", " + pair[1]); 
    } 

    }; 
    // Rest of your worker code goes here. 
</script> 
<script type="text/javascript"> 
    // This script WILL be parsed by JS engines 
    // because its mime-type is text/javascript. 

    // In the past...: 
    // blob builder existed 
    // ...but now we use Blob...: 
    var blob = new Blob(
       Array.prototype 
       .map.call(
       document.querySelectorAll("script[type=\"text\/js-worker\"]") 
       , function (oScript) { return oScript.textContent; }) 
      , {type: "text/javascript"}); 

    // Creating a new document.worker property 
    // containing all our "text/js-worker" scripts. 
    document.worker = new Worker(window.URL.createObjectURL(blob)); 

    document.worker.onmessage = function (oEvent) { 
    pageLog("Received: " + oEvent.data); 
    }; 

    // Start the worker. 
    window.onload = function() { document.worker.postMessage(""); }; 
</script> 
</head> 
<body><div id="logDisplay"></div></body> 
</html> 
+0

Отлично. +1 для 'FormData.entries()', который теперь работает только для версии FF dev. –

+0

@HappyCoding _ "для FormData.entries(), который теперь работает только в редакторе FF dev" _ Должен возвращать ожидаемые результаты в хром, хром с установленным флагом '--javascript-harmony', см. Https://plus.google.com/+ PaulIrish/posts/T615Md5JPQG; 'js' на посту был опробован на хроме 49 – guest271314

+0

№. Док (https://developer.mozilla.org/en-US/docs/Web/API/FormData/entries) говорит, что это только FF 44. Последняя версия FF составляет 43,0,3. Это 45.0a2 для FF Dev Edition. Я только что попробовал. –

1

Если вы используете Firefox вы можете отправить запрос на AJAX и проверить в сети контролировать параметры Вашего запроса

Вот скриншот:

Here is a screen shot

Или вы можете легко print_r($_POST) или $_GET, если вы используете php.

+0

Oh. Сожалею. Есть ли другой способ сделать это без запроса ajax? –

+0

Я не думаю, что это возможно, но вы должны определенно проверить этот вопрос: http://stackoverflow.com/questions/17066875/how-to-inspect-formdata – user297904

+0

Я не уверен, что это сработает для вас, но дайте это попытка, 'console.log (JSON.stringify (formdata))' – user297904

1
// Log entries of a FormData object to the console as an object. 
export const logFormData = (formData) => { 
    const entries = formData.entries(); 
    const result = {}; 
    let next; 
    let pair; 
    while ((next = entries.next()) && next.done === false) { 
     pair = next.value; 
     result[pair[0]] = pair[1]; 
    } 
    console.log(result); 
}; 

MDN doc on .entries()

MDN doc on .next() and .done

Смежные вопросы