2013-03-11 65 views
0

我已經使用以下javascript函數捕獲爲表單中每個元素輸入的值。一旦用戶單擊提交按鈕,必須顯示用戶爲每個控件輸入的值。 該代碼適用於除單選按鈕以外的所有控件。 任何人都可以建議我如何做到這一點?捕獲單個字符串中的所有表單元素值

function DisplayFormValues(){ 
      var str = ''; 
      var elem = document.getElementById('form1').elements; 
      for(var i = 0; i < elem.length; i++) 
      { 

       str += "<b>Name:</b>" + elem[i].name + "\n"; 
       str += "<b>Value:</b><i>" + elem[i].value + "\n"; 
       str += "<BR>"; 
      } 
      document.getElementById('lblValues').innerHTML = str; 
     } 
+2

對於每個指定的單選按鈕組,您必須找到已檢查並使用其值的單選按鈕組。 – Pointy 2013-03-11 17:28:37

+0

是的,這是真的,但我不知道它在目前的代碼中的執行情況。 – codeg24 2013-03-11 17:33:41

回答

1

單選按鈕和複選框的值不容易獲取,因爲它們在DOM中共享相同的名稱。你必須遍歷每一個這些元素,並檢查它的孩子中哪些被檢查。

所以,你需要擴大你的循環。這樣做的一種方法是:

function DisplayFormValues(){ 
    var theform = document.form1; 
    var a = ['input', 'textarea', 'select']; 
    var echo = ''; 
    for (var i = 0; i < a.length; i++) { 
     var tag = a[i]; 
     var els = theform.getElementsByTagName(tag); 
     for (var j = 0; j<els.length; j++) { 
      el = els[j]; // the element 
      if ((tag == 'input' && (el.type == 'text' || el.type == 'password')) || tag == 'select') { 
       echo += '<strong>' + el.name + '</strong>: ' + el.value + '<br />'; 
      } else if ((tag == 'checkbox' || tag == 'radio') && el.checked) { // the element is checked! 
       echo += '<strong>' + el.name + '</strong>: ' + el.value + '<br />'; 
      } 
     } 
    } 
    document.getElementById('lblValues').innerHTML = echo; 
} 
相關問題