Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Find the last checkbox checked

Posted on 2008-06-13
7
320 Views
Last Modified: 2008-06-17
I have a group of 3 checkbox. The user can click on any check box,but I want to track the last checkbox checked. The user can check checkbox 1,3 and 2. I want to do this on a button click event. Then I need the id 2. Izt possible in javascript.
0
Comment
Question by:ip32
7 Comments
 
LVL 41

Expert Comment

by:HonorGod
ID: 21779522
If they all have the same "name" attribute, this is easy.

  var group = document.getElementsByName( "groupName" );
  var last = null;
  for ( var i = 0; i < group.length; i++ ) {
    if ( group[ i ].checked ) {
      last = group[ i ];
    }
  }
  if ( last ) {
    alert( 'last checked: ' + last.value );
  }
0
 
LVL 22

Expert Comment

by:prairiedog
ID: 21779721
Very interesting question. What if the user does this:
Checked 1, 3, and 2, then unchecked 2. What Id do you need?
0
 
LVL 33

Expert Comment

by:raterus
ID: 21780030
I did something similar a long time ago.  I ended up appending to a hidden field an indicator that the box was checked.  If they unchecked the box, I searched the hidden field and removed the indicator.  On a postback, I parsed the list and determined the check order.
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 41

Accepted Solution

by:
HonorGod earned 250 total points
ID: 21780522
Sorry for my incomplete understanding of the issue.

As suggested, I would have a field that keeps a list of the checked boxes, in stack fashion, and remove the instance from the list when the item was unchecked.

For example:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title> Last checked </title>
<script type='text/javascript'>
  var checked = [];
  function check( id ) {
    var ele = document.getElementById( id );
    if ( ele && ele.checked ) {
      checked.push( id );
    } else {
      for ( var i = 0; i < checked.length; i++ ) {
        if ( checked[ i ] == id ) {
          checked.splice( i, 1 );
          break;
        }
      }
    }
    var debug = document.getElementById( 'debug' );
    if ( debug ) {
      var copy = checked;
      copy.reverse();
      debug.innerHTML = 'checked order: ' + copy.toString();
    }
  }
</script>
</head>
<body>
<table border='1'>
  <tbody>
    <tr>
      <td>Checkbox 0:<input type='checkbox' id='cb0' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 1:<input type='checkbox' id='cb1' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 2:<input type='checkbox' id='cb2' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 3:<input type='checkbox' id='cb3' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 4:<input type='checkbox' id='cb4' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 5:<input type='checkbox' id='cb5' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 6:<input type='checkbox' id='cb6' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 7:<input type='checkbox' id='cb7' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 8:<input type='checkbox' id='cb8' onclick='check(this.id)'></td>
    </tr>
    <tr>
      <td>Checkbox 9:<input type='checkbox' id='cb9' onclick='check(this.id)'></td>
    </tr>
  </tbody>
</table>
<div id='debug'></div>
</body>
</html>

Open in new window

0
 

Author Comment

by:ip32
ID: 21781113
Excellent. Izt possible to acheive this in asp.net since there is no click event. I do not want to go to the code behind and give the click event..
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 21781335
probably, but unfortunately, I know nothing about ASP.NET.
I saw the question because of the "javascript" tag...
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 21803571
Hopefully you were able to use the information to help you resolve the issue
using ASP.  Thanks for the grade & points.

Good luck & have a great day
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

809 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