Select only max 5 check boxed from checkbox and enable buttons

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

ablsysadminAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ablsysadminAuthor Commented:
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
b0lsc0ttIT ManagerCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ablsysadminAuthor Commented:
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
Fundamentals of JavaScript

Learn the fundamentals of the popular programming language JavaScript so that you can explore the realm of web development.

b0lsc0ttIT ManagerCommented:
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
ablsysadminAuthor Commented:
Hi

This works 100%
Thanks
0
ablsysadminAuthor Commented:
first time excelent work GURU b0lsc0tt:
0
b0lsc0ttIT ManagerCommented:
Great!  I am glad I could help.  Thanks for the interesting question, the grade and the points.
bol
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Applications

From novice to tech pro — start learning today.