2013-10-09 94 views
0

我有一個帶單選按鈕的表單,我使用javascript循環並將所有單選按鈕的總和返回到頁面底部的輸入元素。我使用的腳本是這個,它工作正常。使用javascript在單獨的組中添加單選按鈕值

<script type="text/javascript"> 
function checkTotal() { 
var radios = document.querySelectorAll('input[type=radio]'), 
    sumField = document.querySelector('input[type=text]'); 
    var sum = 0; 

    for (var i = 0, len = radios.length - 1; i <= len; i++) { 
     if (radios[i].checked) { 
      sum += parseInt(radios[i].value); 
     } 
    } 
    sumField.value = sum; 
} 
</script> 

這裏是我的形式http://cognitive-connections.com/Prefrontal_Cortex_Questionnaire.htm

但是我需要建立另一種形式,其中有在不同的組的幾個問題,我需要分別總結總計爲每個組並將其張貼到他們相應的輸入元素上相應的頁面。這裏是我的新形式http://cognitive-connections.com/Prefrontal_Cortex_Questionnaire100913.htm

我不是一個高級的JavaScript用戶,但對編程本身有一個很好的理解(我想,大聲笑)我的頭告訴我,我應該能夠簡單地聲明一個唯一的var不同的組和獨特的元素,以便將結果發佈到每個組並使用相同的循環(每個組都有正確的變量)。但是,當我添加[name =「elements name」]作爲document.querySelectAll的標識符時,它僅抓取具有該名稱的元素,並且如果我將這些元素自己命名爲相同的名稱,則單選按鈕將喪失它們固有的屬性,一次選擇每個問題的按鈕?我也嘗試爲每個組創建一個類ID,並嘗試將它用作document.querySelectAll中的標識符,但它似乎根本無法工作。任何幫助非常感謝..

+0

jquery適合你嗎? – Dvir

+0

請在這裏發佈相關代碼(HTML,CSS和JavaScript)*,將演示文稿發佈到我們可以看到並編輯代碼的網站,例如[JS Fiddle](http://jsfiddle.net/) ),[JS Bin](http://jsbin.com/),[Dabblet](http://dabblet.com/)等等。通過您的網站挖掘並不像您想象的那麼有趣,並且創建更新/修改遠遠超出應有的難度。幫助我們來幫助你,並且你會趨於更好,更快的答案。 –

+0

我想通了,我的想法是正確的,我只需要確保我所有的變量都是正確的。不管怎麼說,還是要謝謝你.. – user2692324

回答

0

根據我對問題的理解,以下是我的答案。這裏是小提琴http://jsfiddle.net/8sbpX/10/

function enableQ(cls) { 
    var ele = document.querySelectorAll('.' + cls)[0], 
    ev = (document.addEventListener ? "#addEventListener" : "on#attachEvent").split('#'); 
    ele[ev[1]](ev[0] + "change", function() { 
    var radios = ele.querySelectorAll('[type="radio"][value="1"]:checked').length; 
    ele.querySelector('[type="text"]').value = radios; 
    }); 

} 

enableQ("rad-grp");