如何找到表单中元素的总数?

时间:2014-08-14 17:48:10

标签: javascript

我尝试将表单的长度存储在变量上,但它不起作用。这是我第一次尝试使用javascript。

var lista = new Array();

var numOfEl = document.psonia.elements.length;
function ektipwsi() {
    for(var i=0; i < numOfEl ; i++){
        if(document.psonia.elements[i].checked) {
            lista.push(document.psonia.elements[i].value);
        }
    };  

我也尝试过getElementById或getElementByTag而没有运气。 这是我使用的整个表格

<div>
<form name="psonia">
    <div class = "laxanika">
        <h2 class="epik">Λαχανικά</h2>
            <div class="transp">
                <input type="checkbox" value="Ντομάτες">Ντομάτες<br>

                <input type="checkbox" value="Πατάτες">Πατάτες<br>

                <input type="checkbox" value="Αγγούρια">Αγγούρια<br>

                <input type="checkbox" value="Μελιτζάνες">Μελιτζάνες<br>

                <input type="checkbox" value="Κρεμμύδια">Κρεμμύδια<br>

                <input type="checkbox" value="Κρεμ.Στιφ.">Κρεμ.Στιφ.<br>

                <input type="checkbox" value="Μαρούλι">Μαρούλι<br>

                <input type="checkbox" value="Λάχανο">Λάχανο<br>

                <input type="checkbox" value="Πιπεριές">Πιπεριές<br>

                <input type="checkbox" value="Φλωρίνης">Φλωρίνης<br>

                <input type="checkbox" value="Σκόρδα">Σκόρδα<br>

                <input type="checkbox" value="Ρόκα">Ρόκα<br>

                <input type="checkbox" value="Κολοκύθια">Κολοκύθια<br>

                <input type="checkbox" value="Μανιτάρια">Μανιτάρια<br>
        </div>
    </div>  

    <div class="kreata">
        <h2 class="epik">Κρέατα</h2>
            <div class="transp">

                <input type="checkbox" value="Λαιμός">Λαιμός<br>

                <input type="checkbox" value="Χοιρινές">Χοιρινές<br>

                <input type="checkbox" value="Μοσχαρίσιες">Μοσχαρίσιες<br>

                <input type="checkbox" value="Παϊδάκια">Παϊδάκια<br>

                <input type="checkbox" value="Κοτόπουλο">Κοτόπουλο<br>

                <input type="checkbox" value="Μοσχάρι">Μοσχάρι<br>

                <input type="checkbox" value="Κατσίκι">Κατσίκι<br>

                <input type="checkbox" value="Κιμάς">Κιμάς<br>
            </div>  




    <div class="galaktokomika">
        <h2 class="epik">Γαλακτοκομικά</h2>
            <div class="transp">

                <input type="checkbox" value="Γάλα">Γάλα<br>

                <input type="checkbox" value="Γιαούρτι">Γιαούρτι<br>

                <input type="checkbox" value="Βούτυρο">Βούτυρο<br>

                <input type="checkbox" value="Ρεγκάτο">Ρεγκάτο<br>

                <input type="checkbox" value="Κρέμα γάλακτος">Κρέμα γάλακτος<br>

                <input type="checkbox" value="Τζατζίκι">Τζατζίκι<br>

                <input type="checkbox" value="Τυροκαφτερή">Τυροκαφτερή<br>

                <input type="checkbox" value="Αυγά">Αυγά<br>


            </div>  

    </div>
    </div>

    <div class="thalassina">
        <h2 class="epik">Θαλασσινά</h2>
            <div class="transp">

                <input type="checkbox" value="Γαρίδες">Γαρίδες<br>

                <input type="checkbox" value="Μύδια">Μύδια<br>

                <input type="checkbox" value="Καλαμάρι">Καλαμάρι<br>

                <input type="checkbox" value="Θαλασσινά">Θαλασσινά<br>

                <input type="checkbox" value="Αθερίνα">Αθερίνα<br>


            </div>  

    </div>          

</form>

3 个答案:

答案 0 :(得分:2)

您正在引用您需要的所有内容:

document.psonia.elements

HTMLFormControlsCollection,与所有集合一样,它与数组类似,具有length属性。

document.psonia.elements.length

<强>更新

我不知道你在问什么。我将您的表单剪切并粘贴到我的编辑器中,并使用我的search函数查找您拥有的input元素的数量。我的编辑发现 35

console.log(document.psonia.elements.length);

也会返回 35

答案 1 :(得分:0)

尝试类似

的内容
var allElements = document.getElementsByTagName('*');
for (var i=0;i<allElements.length;i++){
  //console.log(allElements[i].id)
}

答案 2 :(得分:0)

我移动了函数内部元素的计数器,现在它正常工作。谢谢!

function ektipwsi() {
var numOfEl = document.psonia.elements.length;
for(var i=0; i < numOfEl ; i++){
    if(document.psonia.elements[i].checked) {
        lista.push(document.psonia.elements[i].value);
    }
};