获取表单中的所有元素

时间:2015-06-10 12:25:05

标签: javascript jquery html

我正在学习Javascript,因为我的应用程序在不断增长,而且几乎从头开始,这对于javascript来说是非常新的。

我想做什么

获取表单上所有选定单选按钮的值

的伪

  1. 获取表单中的所有元素分配给数组
  2. 如果type为radio并且已选中,则将元素循环到数组
  3. 我的代码

    var elmnts = document.getElementById("makePicksForm");
    var lngth = document. getElementById("makePicksForm").elements.length;
    
    for(var x = 0; x< lngth; x++);
    var allElmts = elmnts.elements[x]
     if(allElmnts.type == "radio")
    window.alert(allElmnts);    
    }
    

    我的HTML

    <form id="makePicksForm">
     <input type="radio" id="picks'.$x.'" name="picks['.$x.']" value="'.$row['team1'].' "onclick="return disp()"><span>'.$team1.'</span>
         </label>
         <br />
       <br /> <label class="yellow">
       <input type="radio" id="picks'.$x.'"  name="picks['.$x.']" value="'.$row['team2'].' "onclick="return disp()"><span>'.$team2.'</span>
       </label><br />
       <br />
        <label class="pink">
        <input type="radio" name="picks'.$x.'" value="draw">
        <span>Draw</span>
        </label><br />';
    

    我的问题

    enter image description here

    我想知道我做错了什么,为什么没有定义变量allElmnts,有什么建议我可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

在for循环签名后删除分号,因为它不会在循环循环下执行语句。还可以使用代码块在for循环下包含多个语句。

for(var x = 0; x< lngth; x++)
{
    var allElmts = elmnts.elements[x]
    if(allElmnts.type == "radio")
         window.alert(allElmnts);    
}

答案 1 :(得分:1)

在jquery中使用 map()

var allSelectedRadioValue = $("#makePicksForm [type=radio]:checked").map(function() {
    return this.value;
}).get();
console.log(allSelectedRadioValue)

<强> Fiddle