2011-03-03 43 views
2

我只是在警告框中輸出所有表單名稱及其相關變量,以幫助我調試某些內容。我只是使用螢火蟲或任何,但問題只存在於IE瀏覽器(和IE開發人員工具在這種情況下似乎並不很有幫助。)在JavaScript中輸出所有表單變量(類似於php的print_r())

我猜我只需要一個for循環,但我不知道如何爲其提供一組表格鍵。

謝謝, 約翰。

回答

2

使用JSON + jQuery的:

var formObject = {}; 

$('form input, form textarea, form select').each(function(){ 
    formObject[$(this).attr('name')] = $(this).val(); 
}); 

alert(JSON.stringify(formObject)); 

編輯: 行動 http://jsfiddle.net/RaPVf/

注:IE 7和下面你需要包括JSON2.js

+1

只是一個供參考,資本變量名的第一個字母違背了典型的慣例。 – 2011-03-03 01:04:52

+0

幾乎是這樣,但這僅僅是對於稱爲「輸入」的元素而言,由於某些原因,所有的值都是空的。不過,這是一個很好的開始,我可能能夠從中獲益。 – 2011-03-03 01:05:21

+0

@andrew:好點,編輯 – generalhenry 2011-03-03 01:06:13

1

我把這個問題有一些有趣的導航DOM。檢查出來,並嘗試^^

<script type="text/javascript"> 
    var msg = ""; 
    var myNode = document.firstChild; 
    var breaker = myNode.nodeName; 
    var flag = true; 
    while(flag) 
    { 
    msg += myNode.nodeName + " - " + myNode.nodeValue + "; "; 
    if(myNode.hasChildNodes()) 
    { 
     myNode = myNode.firstChild; 
    } 
    else 
    { 
     while(myNode.nextSibling == null && flag) 
     { 
      myNode = myNode.parentNode; 
      if(myNode.nodeName == breaker) 
       flag = false; 
     } 
     if(flag) 
      myNode = myNode.nextSibling; 
    } 
    } 
    alert(msg); 
    </script> 

(粘貼對你的頁面末尾)