Solved

Select only max 5 check boxed from checkbox and enable buttons

Posted on 2009-07-13
9
395 Views
Last Modified: 2012-05-07
Hi

I have a jsp web page that have a datatable with checkboxes, but I only need the user to tick 5 rows from the checkboxes and enable the buttons. When the page load the button must be disabled only when the user tick 5 checkboxed will the buttons be enabled.

Can some assist with this
Here is my checkbox code:
 
<h:column>
                        
                              <f:facet name="header">
                                    <h:outputText value="Select Assets" />
                              </f:facet>
 
                              <h:selectBooleanCheckbox id="mycheckbox"
                                    value="#{viewsearch.selected}"></h:selectBooleanCheckbox>
                                    
                        </h:column>
 
-------------------------------------------------------------------------------------------------------------------
Here is my button code
 
<h:commandButton id="webPageUpdate" value="Update table values"
                        action="#{transferAssetBean.tableUpdate}">
                  </h:commandButton>
                  <h:commandButton id="saveChanges" value="Save latest changes"
                        action="#{transferAssetBean.updateButton}">
                  </h:commandButton>

Open in new window

0
Comment
Question by:ablsysadmin
[X]
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
  • 4
  • 3
9 Comments
 

Author Comment

by:ablsysadmin
ID: 24869143
Hi

I wrote a function that allow me to do certain stuff but I only need to select max 5 selectBooleanCheckbox. Can we maybe work from my function
<script language="javascript">
								<!--
								function ValidateForm(){
									
									var found = false;
									var btnsaveChanges = document.getElementById("form1:saveChanges");
									btnsaveChanges.disabled = true;
									for (var i=0; i<=1; i++){
										if ((document.getElementById("form1:tableData:"+i+":mycheckbox").checked)>= 1){
											found = true;
											btnsaveChanges.disabled = false;
										}else{
											if( i <= 0){
											found = false
											alert ("Select a Asset before Transfer"); 
											}
										}
							
									}
									
								}
								-->
 
</script>

Open in new window

0
 
LVL 54

Accepted Solution

by:
b0lsc0tt earned 500 total points
ID: 24871088
Please provide the browser version of the source and I can help.  Use Page Source or View Source when the page is in the browser to see this version of the code.  Your JSP code doesn't really help.  It will also help if you provide the names of the checkbox(es) and the button(s) that should be part of this.
bol
0
 

Author Comment

by:ablsysadmin
ID: 24877007
Hi bo1scott


Here is the source view from the page. Hope this helps
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
					<link rel='stylesheet' class='component' type='text/css' href='/AssetManagement/a4j_3_2_0.SR1-SNAPSHOTorg/richfaces/renderkit/html/css/basic_classes.xcss/DATB/eAHblDspFQAFnAIX' /><link rel='stylesheet' class='component' type='text/css' href='/AssetManagement/a4j_3_2_0.SR1-SNAPSHOTorg/richfaces/renderkit/html/css/extended_classes.xcss/DATB/eAHblDspFQAFnAIX' /><link rel='stylesheet' class='component' type='text/css' href='/AssetManagement/a4j_3_2_0.SR1-SNAPSHOTcss/datascroller.xcss/DATB/eAHblDspFQAFnAIX' /><script type='text/javascript' src='/AssetManagement/a4j_3_2_0.SR1-SNAPSHOTorg.ajax4jsf.javascript.PrototypeScript'></script><script type='text/javascript' src='/AssetManagement/a4j_3_2_0.SR1-SNAPSHOTorg.ajax4jsf.javascript.AjaxScript'></script><script language="javascript">
								<!--
								function ValidateForm(){
									
									var found = false;
									var btnsaveChanges = document.getElementById("form1:saveChanges");
									btnsaveChanges.disabled = true;
									for (var i=0; i<=1; i++){
										if ((document.getElementById("form1:tableData:"+i+":mycheckbox").checked)>= 1){
											found = true;
											btnsaveChanges.disabled = false;
										}else{
											if( i <= 0){
											found = false
											alert ("Select a Asset before Transfer"); 
											}
										}
							
									}
									
								}
								-->
 
</script>
	</head>
	
<form id="form1" name="form1" method="post" action="/AssetManagement/ViewAsset.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="form1" value="form1" />
<table id="form1:tableData" border="1" cellpadding="2" style="background: #FFFFFF url('images/body_bg.gif') no-repeat right top; font-size: 12px;" width="90%">
<thead>
<tr><th colspan="10" scope="colgroup">Select Assets you wish to transfer from the list below</th></tr>
<tr>
<th scope="col">ID</th>
<th scope="col">Select Assets</th>
<th scope="col">Asset Type</th>
 
<th scope="col">Asset Make</th>
<th scope="col">Asset Model</th>
<th scope="col">Serial Number</th>
<th scope="col">Cost Code</th>
<th scope="col">Status</th>
<th scope="col">Branch Code</th>
<th scope="col">Manager Name</th>
</tr>
</thead>
<tbody>
 
<tr>
<td>3</td>
<td><input id="form1:tableData:0:mycheckbox" type="checkbox" name="form1:tableData:0:mycheckbox" /></td>
<td>Desktop</td>
<td>HP Compaq</td>
<td>Deskpro EN</td>
<td>NC3453453635</td>
<td>SDLC123</td>
<td>In Use</td>
<td>1983</td>
 
<td>Peter Mayer</td>
</tr>
<tr>
<td>63</td>
<td><input id="form1:tableData:1:mycheckbox" type="checkbox" name="form1:tableData:1:mycheckbox" /></td>
<td>Routers</td>
<td>Cisco</td>
<td>3600</td>
<td>SEC9BNX475</td>
<td>SDLC123</td>
 
<td>Not in Use</td>
<td>1983</td>
<td>Peter Mayer</td>
</tr>
<tr>
<td>64</td>
<td><input id="form1:tableData:2:mycheckbox" type="checkbox" name="form1:tableData:2:mycheckbox" /></td>
<td>Routers</td>
<td>Cisco</td>
<td>800</td>
 
<td>NXBTR125PBX47</td>
<td>SDLC123</td>
<td>Not in Use</td>
<td>1983</td>
<td>Peter Mayer</td>
</tr>
<tr>
<td>65</td>
<td><input id="form1:tableData:3:mycheckbox" type="checkbox" name="form1:tableData:3:mycheckbox" /></td>
<td>Routers</td>
 
<td>Cisco</td>
<td>800</td>
<td>NXBTR125PBX47</td>
<td>SDLC123</td>
<td>Not in Use</td>
<td>1983</td>
<td>Peter Mayer</td>
</tr>
<tr>
<td>66</td>
 
<td><input id="form1:tableData:4:mycheckbox" type="checkbox" name="form1:tableData:4:mycheckbox" /></td>
<td>3G Device</td>
<td>3G -HSDPA</td>
<td>Globe Surfer</td>
<td>SEC9BNX471</td>
<td>SDLC123</td>
<td>Not in Use</td>
<td>1983</td>
<td>Peter Mayer</td>
 
</tr>
<tr>
<td>67</td>
<td><input id="form1:tableData:5:mycheckbox" type="checkbox" name="form1:tableData:5:mycheckbox" /></td>
<td>Routers</td>
<td>Cisco</td>
<td>1700</td>
<td>SDLC123</td>
<td>SDLC123</td>
<td>Not in Use</td>
 
<td>1983</td>
<td>Peter Mayer</td>
</tr>
<tr>
<td>68</td>
<td><input id="form1:tableData:6:mycheckbox" type="checkbox" name="form1:tableData:6:mycheckbox" /></td>
<td>Routers</td>
<td>Cisco</td>
<td>2600</td>
<td>1011108210111</td>
 
<td>SDLC123</td>
<td>Not in Use</td>
<td>1983</td>
<td>Peter Mayer</td>
</tr>
</tbody>
</table>
<div class="dr-dscr rich-datascr " id="form1:datascroll" style="width=100%; nowrap=true; cellpadding=2; ; display: none" align="center"><script type="text/javascript">Event.observe('form1:datascroll', 'rich:datascroller:onscroll', function(event){A4J.AJAX.Submit('j_id_jsp_453046294_0','form1',event,{'ignoreDupResponses':true,'parameters':{'ajaxSingle':'form1:datascroll','form1:datascroll':event.memo.page} ,'eventsQueue':'form1:datascroll','actionUrl':'/AssetManagement/ViewAsset.jsf'} ); return false;});</script></div><input id="form1:webPageUpdate" type="submit" name="form1:webPageUpdate" value="Update table values" onclick="return ValidateForm();" /><input id="form1:saveChanges" type="submit" name="form1:saveChanges" value="Save latest changes" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id61" />
</form>
	<script language="javascript">
		ValidateForm();
	</script>
 
	</body>
</html>

Open in new window

0
Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

 
LVL 54

Assisted Solution

by:b0lsc0tt
b0lsc0tt earned 500 total points
ID: 24884625
The function below will do what you need.  Let me know if you have a question.
bol

      		function ValidateForm(){
      			
      			var found = false;
      			var btnsaveChanges = document.getElementById("form1:saveChanges");
      			btnsaveChanges.disabled = true;
			var count = 0;	
      			for (var i=0; i<=6; i++){
      				if ((document.getElementById("form1:tableData:"+i+":mycheckbox").checked)){
      					found = true;
					count++;
      				}
      			}
			if (count === 0) {
				btnsaveChanges.disabled = false;
				alert ("Select a Asset before Transfer");
				return false;
			} else if (count > 5) {
				btnsaveChanges.disabled = false;
				alert ("Select no more than 5 Assets before Transfer");
				return false;
			} else {
				return true;
			}    			
      		}

Open in new window

0
 

Author Comment

by:ablsysadmin
ID: 24893009
Hi

This works 100%
Thanks
0
 

Author Closing Comment

by:ablsysadmin
ID: 31605355
first time excelent work GURU b0lsc0tt:
0
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 24940111
Great!  I am glad I could help.  Thanks for the interesting question, the grade and the points.
bol
0

Featured Post

How our DevOps Teams Maximize Uptime

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us. Read the use case whitepaper.

Question has a verified solution.

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

Suggested Solutions

A publishing tool, a Version Control System, or a Collaboration Platform! These can be some of the defining words for the two very famous web-hosting Git repositories: Bitbucket and Github. Git is widely used amongst the programmers and developers f…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…
Learn how to set-up PayPal payment integration in your Wufoo form. Allow your users to remit payment through PayPal upon completion of your online form. This is helpful for collecting membership payments, customer payments, donations, and more.

749 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