【问题标题】:Javascript - get the radio button index numberJavascript - 获取单选按钮索引号
【发布时间】:2014-03-27 22:20:45
【问题描述】:

**我有一个带有这样一个选项数组的 php 页面......我需要通过 javascript **获得所选选项的索引。上面我放了不起作用的javascript代码......任何帮助将不胜感激!

 <input type="radio" name="option[1]" value="1">
<input type="radio" name="option[1]" value="2">
<input type="radio" name="option[1]" value="3">
<input type="radio" name="option[1]" value="4">

<input type="radio" name="option[2]" value="1">
<input type="radio" name="option[2]" value="2">
<input type="radio" name="option[2]" value="3">
<input type="radio" name="option[2]" value="4">

<input type="radio" name="option[3]" value="1">
<input type="radio" name="option[3]" value="2">
<input type="radio" name="option[3]" value="3">
<input type="radio" name="option[3]" value="4">
...

谁能帮帮我? 我正在尝试这样的事情,但没有成功

   <script type="text/javascript">

    function validateForm(form) {

        for (var i = 0; i < form.elements.length; i++ ) {

            if (form.elements[i].type == 'radio') {
                if (form.elements[i].checked == true) {
                    if (form.elements[i].value  == 1 || form.elements[i].value == 6){
                        var comentario=document.getElementsByName('comentario[]'[i]);
                        var opcao = form.elements[i];
                        alert(clickedElm(opcao));
                        submitFlag = true;
                        if (comentario.value.length < 100){
                            submitFlag=false;
                            alert(i);
                        }
                        return submitFlag;
                    }

                }
            }
        }

    }
    function clickedElm(element)
    {
      var index = 0;
      for (var i = 0; document.forms[0].elements.length; i++)
      {
        if (document.forms[0].elements[i] == element)
        {
          index = i;
        }
      }
      return index;
    }
    </script>

【问题讨论】:

  • 您只想从选项名称中获取数字?

标签: javascript arrays indexing


【解决方案1】:

如果我正确理解了问题,可以这样解决:

$(document).on('change','input[type=radio]', function(){
   alert($(this).prop('name').charAt(7));
});

这是小提琴http://jsfiddle.net/Goodluck/ynkgr/

【讨论】:

    【解决方案2】:

    name 属性用于对单选按钮进行分组,您必须使用 id 属性来访问控件,询问它是否被选中。

    例子

    <html>
        <head>
        </head>
        <body>
            <form id="frmTest">
                <input type="radio" name="option[1]" id="option1-item1" value="1" >
                <input type="radio" name="option[1]" id="option1-item2" value="2" >
                <input type="radio" name="option[1]" id="option1-item3" value="3" >
                <input type="radio" name="option[1]" id="option1-item4" value="4" >
    
                <input type="radio" name="option[2]" id="option2-item1" value="1" >
                <input type="radio" name="option[2]" id="option2-item2" value="2" >
                <input type="radio" name="option[2]" id="option2-item3" value="3" >
                <input type="radio" name="option[2]" id="option2-item4" value="4" >
    
                <input type="radio" name="option[3]" id="option3-item1" value="1" >
                <input type="radio" name="option[3]" id="option3-item2" value="2" >
                <input type="radio" name="option[3]" id="option3-item3" value="3" >
                <input type="radio" name="option[3]" id="option3-item4" value="4" >
            </form>
    
            <input type="button" onclick="validateForm(document.getElementById('frmTest'))" />
    
            <script type="text/javascript">
    
                function validateForm(form) {
    
                    for (var i = 0; i < form.elements.length; i++ ) {
    
                        if (form.elements[i].type == 'radio') {
                            if (form.elements[i].checked == true) {
                                if (form.elements[i].value  == 1 || form.elements[i].value == 6){
                                    var comentario=document.getElementsByName('comentario[]'[i]);
                                    var opcao = form.elements[i];
                                    alert(clickedElm(opcao));
                                    submitFlag = true;
                                    if (comentario.value.length < 100){
                                        submitFlag=false;
                                        alert(i);
                                    }
                                    return submitFlag;
                                }
    
                            }
                        }
                    }
    
                }
                function clickedElm(element)
                {
                  return element.id;
                }
            </script>
        </body>
    </html>
    

    【讨论】:

      【解决方案3】:

      您忘记检查此行中的条件:
      (函数 clickedElm 中的循环)

      for (var i = 0; document.forms[0].elements.length; i++)
      

      因此,您进入了一个无限循环。

      正确的行:

      for (var i = 0; i < document.forms[0].elements.length; i++)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-21
        • 1970-01-01
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        • 2011-01-29
        • 1970-01-01
        相关资源
        最近更新 更多