Hey Everyone,
Well i am not sure if my question needs to be here or in coldfusion. If i have my question is in the wrong section i am sorry in advance an will move it to the correct section.
Basically i have a multiple select box. An it works except for this one part i want to add to it.The first box i have is called project members which shows the users you can choose to send an email to and the other box is called assignees which is the users that you selected to send an email to.
What i am trying to do is instead of just choosing the users you want to send an email to and click submit. i want them to be required to select this check box that appears below it called assignees.If the check box is selected (and there are users in the assignees box) it will send an email to the the users selected when i click on submit.However, if the check box is not selected i need it be able to do 2 things. If there are users in the assignees box i need an error to pop up saying that they need to select the check box. But if there are no users in the assignees box then i need no errors to come up an just submit the form.
Right now the only thing i have working is i can send an email to the user selected as long as the check box is selected. if the check box is not selected it will not send an email an you get a nice cold fusion error. Its mostly getting the pop up working that i am not sure about.
But thank you in advance for all the help,
Rach
here is the form
here is multipleselectb ox.js
an here is the userform.cfm page
Well i am not sure if my question needs to be here or in coldfusion. If i have my question is in the wrong section i am sorry in advance an will move it to the correct section.
Basically i have a multiple select box. An it works except for this one part i want to add to it.The first box i have is called project members which shows the users you can choose to send an email to and the other box is called assignees which is the users that you selected to send an email to.
What i am trying to do is instead of just choosing the users you want to send an email to and click submit. i want them to be required to select this check box that appears below it called assignees.If the check box is selected (and there are users in the assignees box) it will send an email to the the users selected when i click on submit.However, if the check box is not selected i need it be able to do 2 things. If there are users in the assignees box i need an error to pop up saying that they need to select the check box. But if there are no users in the assignees box then i need no errors to come up an just submit the form.
Right now the only thing i have working is i can send an email to the user selected as long as the check box is selected. if the check box is not selected it will not send an email an you get a nice cold fusion error. Its mostly getting the pop up working that i am not sure about.
But thank you in advance for all the help,
Rach
here is the form
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <!---Multiple select box for assignees---> <script src="multipleselectbox.js"></script> <style type="text/css"> .multipleSelectBoxControl span{ /* Labels above select boxes*/ font-family: Tahoma; font-size:13px; font-weight: bold; } .multipleSelectBoxControl div select{ /* Select box layout */ font-family:arial; height:100%; } .multipleSelectBoxControl input{ /* Small butons */ width:25px; } .multipleSelectBoxControl div{ float:left; } .multipleSelectBoxDiv </style> </head> <body> <!--- Assignees ---> <form action="userform.cfm" id="userForm" name="userForm" method="POST"> Project Members: <select multiple name="fromBox" id="fromBox"> <option value="s@yahoo.com">Rachel</option> <option value="p@Yahoo.com">Rae</option> <option value="r@hotmail.com">Work</option> </select> <select multiple name="toBox" id="toBox"> </select> <script type="text/javascript"> createMovableOptions("fromBox","toBox",350,150,'Project Members','Assignees'); </script> <br/><br/> Send Email To:<br/> <input type="checkbox" name="assignees" id="assignees" value="" onclick="javascript:multipleSelectOnSubmit();"/>Assignees<br/> <input type="checkbox" name="contact" value=""/>Contact <br/> CC:<input type="text" name="contactemail" id="contactemail" value=""/><br/><br/> <input type="submit" class="officalsubmit" value="submit" name="submit" onClick="return validate_form();"> </form> </body> </html>
Code:
var fromBoxArray = new Array(); var toBoxArray = new Array(); var selectBoxIndex = 0; var arrayOfItemsToSelect = new Array(); function moveSingleElement() { var selectBoxIndex = this.parentNode.parentNode.id.replace(/[^\d]/g,''); var tmpFromBox; var tmpToBox; if(this.tagName.toLowerCase()=='select'){ tmpFromBox = this; if(tmpFromBox==fromBoxArray[selectBoxIndex])tmpToBox = toBoxArray[selectBoxIndex]; else tmpToBox = fromBoxArray[selectBoxIndex]; }else{ if(this.value.indexOf('>')>=0){ tmpFromBox = fromBoxArray[selectBoxIndex]; tmpToBox = toBoxArray[selectBoxIndex]; }else{ tmpFromBox = toBoxArray[selectBoxIndex]; tmpToBox = fromBoxArray[selectBoxIndex]; } } for(var no=0;no<tmpFromBox.options.length;no++){ if(tmpFromBox.options[no].selected){ tmpFromBox.options[no].selected = false; tmpToBox.options[tmpToBox.options.length] = new Option(tmpFromBox.options[no].text,tmpFromBox.options[no].value); for(var no2=no;no2<(tmpFromBox.options.length-1);no2++){ tmpFromBox.options[no2].value = tmpFromBox.options[no2+1].value; tmpFromBox.options[no2].text = tmpFromBox.options[no2+1].text; tmpFromBox.options[no2].selected = tmpFromBox.options[no2+1].selected; } no = no -1; tmpFromBox.options.length = tmpFromBox.options.length-1; } } var tmpTextArray = new Array(); for(var no=0;no<tmpFromBox.options.length;no++){ tmpTextArray.push(tmpFromBox.options[no].text + '___' + tmpFromBox.options[no].value); } tmpTextArray.sort(); var tmpTextArray2 = new Array(); for(var no=0;no<tmpToBox.options.length;no++){ tmpTextArray2.push(tmpToBox.options[no].text + '___' + tmpToBox.options[no].value); } tmpTextArray2.sort(); for(var no=0;no<tmpTextArray.length;no++){ var items = tmpTextArray[no].split('___'); tmpFromBox.options[no] = new Option(items[0],items[1]); } for(var no=0;no<tmpTextArray2.length;no++){ var items = tmpTextArray2[no].split('___'); tmpToBox.options[no] = new Option(items[0],items[1]); } } function sortAllElement(boxRef) { var tmpTextArray2 = new Array(); for(var no=0;no<boxRef.options.length;no++){ tmpTextArray2.push(boxRef.options[no].text + '___' + boxRef.options[no].value); } tmpTextArray2.sort(); for(var no=0;no<tmpTextArray2.length;no++){ var items = tmpTextArray2[no].split('___'); boxRef.options[no] = new Option(items[0],items[1]); } } function moveAllElements() { var selectBoxIndex = this.parentNode.parentNode.id.replace(/[^\d]/g,''); var tmpFromBox; var tmpToBox; if(this.value.indexOf('>')>=0){ tmpFromBox = fromBoxArray[selectBoxIndex]; tmpToBox = toBoxArray[selectBoxIndex]; }else{ tmpFromBox = toBoxArray[selectBoxIndex]; tmpToBox = fromBoxArray[selectBoxIndex]; } for(var no=0;no<tmpFromBox.options.length;no++){ tmpToBox.options[tmpToBox.options.length] = new Option(tmpFromBox.options[no].text,tmpFromBox.options[no].value); } tmpFromBox.options.length=0; sortAllElement(tmpToBox); } /* This function highlights options in the "to-boxes". It is needed if the values should be remembered after submit. Call this function onsubmit for your form */ function multipleSelectOnSubmit() { for(var no=0;no<arrayOfItemsToSelect.length;no++){ var obj = arrayOfItemsToSelect[no]; for(var no2=0;no2<obj.options.length;no2++){ obj.options[no2].selected = true; } } } function createMovableOptions(fromBox,toBox,totalWidth,totalHeight,labelLeft,labelRight) { fromObj = document.getElementById(fromBox); toObj = document.getElementById(toBox); arrayOfItemsToSelect[arrayOfItemsToSelect.length] = toObj; fromObj.ondblclick = moveSingleElement; toObj.ondblclick = moveSingleElement; fromBoxArray.push(fromObj); toBoxArray.push(toObj); var parentEl = fromObj.parentNode; var parentDiv = document.createElement('DIV'); parentDiv.className='multipleSelectBoxControl'; parentDiv.id = 'selectBoxGroup' + selectBoxIndex; parentDiv.style.width = totalWidth + 'px'; parentDiv.style.height = totalHeight + 'px'; parentEl.insertBefore(parentDiv,fromObj); var subDiv = document.createElement('DIV'); subDiv.style.width = (Math.floor(totalWidth/2) - 15) + 'px'; fromObj.style.width = (Math.floor(totalWidth/2) - 15) + 'px'; var label = document.createElement('SPAN'); label.innerHTML = labelLeft; subDiv.appendChild(label); subDiv.appendChild(fromObj); subDiv.className = 'multipleSelectBoxDiv'; parentDiv.appendChild(subDiv); var buttonDiv = document.createElement('DIV'); buttonDiv.style.verticalAlign = 'middle'; buttonDiv.style.paddingTop = (totalHeight/2) - 50 + 'px'; buttonDiv.style.width = '30px'; buttonDiv.style.textAlign = 'center'; parentDiv.appendChild(buttonDiv); var buttonRight = document.createElement('INPUT'); buttonRight.type='button'; buttonRight.value = '>'; buttonDiv.appendChild(buttonRight); buttonRight.onclick = moveSingleElement; var buttonAllRight = document.createElement('INPUT'); buttonAllRight.type='button'; buttonAllRight.value = '>>'; buttonAllRight.onclick = moveAllElements; buttonDiv.appendChild(buttonAllRight); var buttonLeft = document.createElement('INPUT'); buttonLeft.style.marginTop='10px'; buttonLeft.type='button'; buttonLeft.value = '<'; buttonLeft.onclick = moveSingleElement; buttonDiv.appendChild(buttonLeft); var buttonAllLeft = document.createElement('INPUT'); buttonAllLeft.type='button'; buttonAllLeft.value = '<<'; buttonAllLeft.onclick = moveAllElements; buttonDiv.appendChild(buttonAllLeft); var subDiv = document.createElement('DIV'); subDiv.style.width = (Math.floor(totalWidth/2) - 15) + 'px'; toObj.style.width = (Math.floor(totalWidth/2) - 15) + 'px'; var label = document.createElement('SPAN'); label.innerHTML = labelRight; subDiv.appendChild(label); subDiv.appendChild(toObj); parentDiv.appendChild(subDiv); toObj.style.height = (totalHeight - label.offsetHeight) + 'px'; fromObj.style.height = (totalHeight - label.offsetHeight) + 'px'; selectBoxIndex++; }
Code:
<cfmail to="#form.toBox#" from="Customer Support Email Alert <Reports@howardcomputers.com>" subject="Customer Support Email Notification" type="HTML"> <cfinclude template="printticket.cfm"> </cfmail>
Comment