Solved

for loop checking radio button

Posted on 2008-06-11
7
522 Views
Last Modified: 2009-07-29
hi all,

 i have some html with radio buttuns

I'm using a javscript for loop to loop through them all to see which one is checked.

What I am finding is if there is only ONE radio buton, even though i click it the javascript isn't recognising it's checked


for (var i = 0; i < document.forms['radio'].test.length; i++) {
  if (document.forms['radio'].test[i].checked) {
    alert ('we checked one');      
    return false;
  }                  
}

so i have one radion button on a form, clicking it so it's checked butt it's not going into the loop

thanks for any help


0
Comment
Question by:dalecon
7 Comments
 
LVL 2

Expert Comment

by:russhuntington
Comment Utility
Can you post the full hmtl? It will help us idenitify the problem.
0
 

Author Comment

by:dalecon
Comment Utility
<html>

<head>

<script language="javascript">

      function testchecked()
         {


            alert ('in fucntion');

            for (var i = 0; i < document.forms['radio'].radiotest.length; i++) {

                        alert ('in for loop');

                  if (document.forms['radio'].radiotest[i].checked) {


                        alert ('in if');

                  }

            }
         }

</script>

</head>


            <form name="find" action="" method="post">
              <td align="left">
                        <input name="Submit" type="button" class="button" value="click" onClick="javascript:testchecked()">
                  </td>
            </form>



<table width="100%" border="0" cellpadding="1" cellspacing="0">
<form name="radio">
<tr>
  <td width="20%">aaa</td>
  <td width="15%">bbb</td>
  <td width="20%">ccc</td>
  <td width="40%" align="left" ><input type="radio" name="radiotest" value="1234"></td>
</tr>
</form>
</table>


</html>
0
 

Author Comment

by:dalecon
Comment Utility
if i do alert( document.forms['radio'].radiotest.length);

it comes up with undefined, even though there is a radiotest
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 41

Accepted Solution

by:
HonorGod earned 50 total points
Comment Utility
Try something like this:
<html>

<head>

<script type='text/javascript'>

  function testchecked() {

//  alert ('testchecked() : len = ' + document.forms[ 1 ].radiotest.length );

    var radiotest = document.forms[ 1 ].radiotest;

    var picked = null;

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

      if ( radiotest[ i ].checked ) {

        picked = radiotest[ i ];

      }

    }

    if ( picked ) {

      alert( 'checked = ' + picked.value );

    } else {

      alert( 'Please select a value' );

    }

  }

</script>
 

</head>

<body>

  <form name='find' action='' method='post'>

    <input name='Submit' type='button' class='button' value='click' onClick='javascript:testchecked()'>

  </form>
 

  <form name='radio'>

    <table width='100%' border='0' cellpadding='1' cellspacing='0'>

      <tbody>

        <tr>

          <td >aaa</td>

          <td >bbb</td>

          <td >ccc</td>

          <td  align='left' ><input type='radio' name='radiotest' value='1234'></td>

        </tr>

        <tr>

          <td >ddd</td>

          <td >eee</td>

          <td >fff</td>

          <td  align='left' ><input type='radio' name='radiotest' value='2345'></td>

        </tr>

      </tbody>

    </table>

  </form>

</body>

</html>

Open in new window

0
 
LVL 41

Expert Comment

by:HonorGod
Comment Utility
btw, when you only have one matching value, the result of the reference is not an array.  So with only one "radiotest" input field, this

document.forms[ 1 ].radiotest

references the one and only matching item in the document
0
 
LVL 1

Expert Comment

by:SasDev
Comment Utility
I've been looking for a solution to this problem of mine and was able to attain a resolution with the help of the "Accepted Solution" in this thread.

Thanks 'HonorGod', your solution helped me!
0
 
LVL 41

Expert Comment

by:HonorGod
Comment Utility
SasDev:  Good.  I'm glad to hear it.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Article by: DanRollins
This article describes a JavaScript program that creates a maze made of hexagonal cells.  In Part 2 (http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/A_7850-Hex-Maze-Part-2.html), we'll extend the program by adding a depth-…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now