2015-10-06 158 views
1

這是我的第一個SO問題,如果我在這裏弄到任何東西,我的道歉。我搜索了高和低,但無法找到我正在尋找的確切的東西。將複選框標籤複製到隱藏文本字段

我有一些問題得到腳本提供給我做我想做的事情。實質上,我希望所有選中複選框的標籤都與某個類的父級創建爲一個字符串,並用分號分隔並添加到隱藏字段中。

這裏是我的工作的功能:

 function copyProductInterest() { 
      var resultData = ''; 

      var listLabels = document.querySelectorAll('.Pardot_In_Scope .inline'); 
      var listInputs = document.querySelectorAll('.Pardot_In_Scope input'); 
      for(var i=0; i<listInputs.length; i++){ 
       label = listLabels[i]; 
       checkbox = listInputs[i]; 
       if(checkbox.checked){ 
        resultData += label.innerHTML + ';'; 
       } 
      } 
      document.querySelectorAll('.Test_Comment textarea')[0].value = resultData; 
      return true; 
     } 

編輯:我已經更新document.querySelectorAll( 'Test_Comment輸入')[0] .value的= resultData; to document.querySelectorAll('。Test_Comment textarea')[0] .value = resultData;

問題表單在這裏 - http://go.pardot.com/l/49432/2015-05-19/b5j5r。我希望任何Pardot In Scope複選框字段的標籤(不是值)都映射到測試註釋字段(當前未隱藏),作爲用分號分隔的數組/字符串。

我打電話的功能,這樣一來......

<form accept-charset="UTF-8" method="post" action="http://go.pardot.com/l/49432/2015-05-19/b5j5r" class="form" id="pardot-form" onsumbit="copyProductInterest()"> 

如果作爲框是(UN)檢查可以這樣做,那將是巨大的,但是的onsubmit將被罰款以及。事實上,我沒有得到任何東西。

我沒有訪問任何名稱或樣式的複選框字段,所以我試圖通過父p的類(Pardot_In_Scope)來定位它們。從HTML的角度來看,我可以做的其他事情也不多,因爲這個表單是通過Pardot生成的,並且他們沒有大量的訪問權限。

這整個事情的目的是在Pardot表單的後端通過網絡到主角的形式推送值。我知道以分號分隔的數組將正確映射到另一端。我無法填補我提供的代碼和爲什麼它不適合我的代碼之間的差距。

任何幫助將不勝感激!另外,Pardot不允許服務器端腳本,這就是我查看JavaScript的原因。 (!CLASS)

回答

0

看起來我是個白癡。

onsubmit存在拼寫錯誤。我換了m和b。

我也將它從onsubmit =「copyProductInterest()」更改爲onsubmit =「return copyProductInterest()」,它現在就像一個魅力。

0

您沒有使用.
你也有一個<textarea>元素,但反正你的目標輸入...... 錯誤

修復您的代碼:

document.querySelectorAll('.Test_Comment textarea')[0].value = resultData; 
+0

Hi Roko, 感謝您的反饋。我編輯了代碼,但仍然沒有收到任何關於文本註釋的內容。任何其他想法? Nick – nickfortunatus