Solved

jquery unchecked checkbox

Posted on 2011-09-02
14
714 Views
Last Modified: 2012-05-12
I have a list of checkboxes. Upon clicking on each of the checkboxes i am adding the value to the hidden variable. But the question is if I want to remove the value from the list upon unchecking the checkbox . How this piece cab be done

here is the hidden form variable<input name="IDList[]" type="hidden" id="IDList" value="" /> and the jquery $(".myCheckboxClass").change(function() { var output = 0; $(".myCheckboxClass").change(function() {       if( $(this).is(":checked") ) { output += ", " + $(this).val();       }else {       output = $.grep(output, function(value) {       return value != $(this).val();       });       }       $("#IDList").val(output ); })
0
Comment
Question by:erikTsomik
  • 7
  • 6
14 Comments
 
LVL 82

Expert Comment

by:leakim971
ID: 36475538
Recreate the list each time instead adding/removing element. If one of the checkboxes change (your current selector), loop over all elements (samedi selector) check if checked or unchecked and add to the list only if checked
0
 
LVL 19

Author Comment

by:erikTsomik
ID: 36475549
well i did figure out how to add it but how to remove it from there  
0
 
LVL 82

Expert Comment

by:leakim971
ID: 36475560
Clear it
Rebuild it each click looping over all checkboxes not only the clicked
0
MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

 
LVL 19

Author Comment

by:erikTsomik
ID: 36475880
can you provie the piece of code for it . here is my code the way I am adding values to the list.
 var output = 0;
 if( $(this).is(":checked") ) {
    output += ", " + $(this).val();
                                                                        
                                                                        
 }else {      
      delete output[$(this).val()];                                                                        }                                     
                                                                     $("#IDList").val(output );
0
 
LVL 19

Author Comment

by:erikTsomik
ID: 36476149
I just chnage my delete
 to this
      var getList = $("#bodyIDList").val();
                                                                              $.each( getList, function(intIndex,objValue) {
                                                                                    alert(objValue);
                                                                              }
                                                                              
                                                                              )

And When i do the alert my alert  show each individual items separately li ke 1 2 all comma and so on
0
 
LVL 82

Accepted Solution

by:
leakim971 earned 500 total points
ID: 36477852
check this :
	$(".myCheckboxClass").change(function() {
		var output = []; // clear it
		$(".myCheckboxClass").each(function(i, el) {
			if( $(this).is(":checked") ) {
				output.push( $(this).val() );
			}
		})
		output.join(","); // add the comma and build the string 
		$("#IDList").val(output);
	})

Open in new window

0
 
LVL 19

Author Comment

by:erikTsomik
ID: 36477916
will this take care of unchecking the checkbox and removing item from the list
0
 
LVL 82

Expert Comment

by:leakim971
ID: 36478141
try it and please confirm it run fine for you
0
 
LVL 19

Author Comment

by:erikTsomik
ID: 36478824
Unfortunately , it does not run fine , it adding extra values , and when i uncheck it also adding values rather than removing them. It create a copy of the previously selected elements . I thing we do not need each loop there
0
 
LVL 82

Expert Comment

by:leakim971
ID: 36479024
as you can see we have a << if( $(this).is(":checked") ) { >>
mean we rebuild each time the string only with checked value
line 2 reset the string : var output = []; // clear it
0
 
LVL 19

Author Comment

by:erikTsomik
ID: 36479369
in my login it will reset every time  i am searching for a new name so it has to be outside
0
 
LVL 82

Expert Comment

by:leakim971
ID: 36480441
>in my login it will reset every time  i am searching for a new name so it has to be outside

sorry I ddon't understand
0
 
LVL 19

Author Comment

by:erikTsomik
ID: 36481884
can you tell me how can I do accomplish my logic here. Thank you in advance
0
 
LVL 40

Expert Comment

by:gurvinder372
ID: 36500695
I guess this was your first question on the same problem on which you now have three open question now :)

http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_27291333.html
#36493631

Let me know if anything is pending.

@leakim971 gave the answer first so he deserves the points here
0

Featured Post

How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

Question has a verified solution.

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

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
This article discusses how to create an extensible mechanism for linked drop downs.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
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