Solved

Select only max 5 check boxed from checkbox and enable buttons

Posted on 2009-07-13
9
402 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
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.

 
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

Quiz: What Do These Organizations Have In Common?

Hint: Their teams ended up taking quizzes, too.

Question has a verified solution.

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

Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL several years ago, it seemed like now was a good time to update it for object-oriented PHP.  This article does that, replacing as much as possible the pr…
These days, all we hear about hacktivists took down so and so websites and retrieved thousands of user’s data. One of the techniques to get unauthorized access to database is by performing SQL injection. This article is quite lengthy which gives bas…
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…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

729 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