Help with Condition Validation...
Hi Guys,
I'm new to WA Validation and a little lost, I have a simple form - (Update Form)
With
<select name="accounttype"> m/a
<input type="text" id="dmxCalendar_1> Date input
<input type="text" id="dmxCalendar_2> Date Input
<input name="FreeTrial" type="checkbox" id="FreeTrial" value="Y" />
The basis is that the following form elements should be enables and validated if accounttype = m or disabled and not validated if account type = a
Enabled if accounttype = m
dmxCalendar_1
dmxCalendar_2
FreeTrial
Validated - Required if accounttype = m
dmxCalendar_1
dmxCalendar_2
Disabled and no validation if accounttype = a
dmxCalendar_1
dmxCalendar_2
FreeTrial
Hope that makes sense.....
Now I've got to a certain point where I have applied the validations, but can't see how to apply them to the select item as a variable... but not sure how to do it.........
my code is below...
<!--
function WAtrimIt(theString,leaveLeft,leaveRight) {
if (!leaveLeft) {
while (theString.charAt(0) == " ")
theString = theString.substring(1);
}
if (!leaveRight) {
while (theString.charAt(theString.length-1) == " ")
theString = theString.substring(0,theString.length-1);
}
return theString;
}
function WAFV_GetValueFromInputType(formElement,inputType,trimWhite) {
var value="";
if (inputType == "select") {
if (formElement.selectedIndex != -1 && formElement.options[formElement.selectedIndex].value && formElement.options[formElement.selectedIndex].value != "") {
value = formElement.options[formElement.selectedIndex].value;
}
}
else if (inputType == "checkbox") {
if (formElement.length) {
for (var x=0; x<formElement.length ; x++) {
if (formElement[x].checked && formElement[x].value!="") {
value = formElement[x].value;
break;
}
}
}
else if (formElement.checked)
value = formElement.value;
}
else if (inputType == "radio") {
if (formElement.length) {
for (var x=0; x<formElement.length; x++) {
if (formElement[x].checked && formElement[x].value!="") {
value = formElement[x].value;
break;
}
}
}
else if (formElement.checked)
value = formElement.value;
}
else if (inputType == "radiogroup") {
for (var x=0; x<formElement.length; x++) {
if (formElement[x].checked && formElement[x].value!="") {
value = formElement[x].value;
break;
}
}
}
else if (inputType == "iRite") {
var theEditor = FCKeditorAPI.GetInstance(formElement.name) ;
value = theEditor.GetXHTML(true);
}
else {
var value = formElement.value;
value=value.replace(/<p>(\&\#160\;)*<\/p>/,"");
}
if (trimWhite) {
value = WAtrimIt(value);
}
return value;
}
function WAAddError(formElement,errorMsg,focusIt,stopIt) {
if (document.WAFV_Error) {
document.WAFV_Error += "\n" + errorMsg;
}
else {
document.WAFV_Error = errorMsg;
}
if (!document.WAFV_InvalidArray) {
document.WAFV_InvalidArray = new Array();
}
document.WAFV_InvalidArray[document.WAFV_InvalidArray.length] = formElement;
if (focusIt && !document.WAFV_Focus) {
document.WAFV_Focus = focusIt;
}
if (stopIt == 1) {
document.WAFV_Stop = true;
}
else if (stopIt == 2) {
formElement.WAFV_Continue = true;
}
else if (stopIt == 3) {
formElement.WAFV_Stop = true;
formElement.WAFV_Continue = false;
}
}
function WAValidateRQ(formElement,errorMsg,focusIt,stopIt,trimWhite,inputType) {
var isValid = true;
if (formElement.length && inputType.toLowerCase()!="radio" && inputType.toLowerCase()!="select") formElement=formElement[0];
if (!document.WAFV_Stop && !formElement.WAFV_Stop) {
var value=WAFV_GetValueFromInputType(formElement,inputType,trimWhite);
if (value == "") {
isValid = false;
}
}
if (!isValid) {
WAAddError(formElement,errorMsg,focusIt,stopIt);
}
}
function WAAlertErrors(errorHead,errorFoot,setFocus,submitForm,allowOverride) {
if (!document.WAFV_StopAlert) {
document.WAFV_StopAlert = true;
if (document.WAFV_InvalidArray) {
document.WAFV_Stop = true;
var errorMsg = document.WAFV_Error;
if (errorHead!="")
errorMsg = errorHead + "\n" + errorMsg;
if (errorFoot!="")
errorMsg += "\n" + errorFoot;
document.MM_returnValue = false;
if (document.WAFV_Error!="") {
if (allowOverride) {
if (confirm(errorMsg.replace(/"/g,'"'))) {
document.MM_returnValue = true;
return;
}
}
else {
alert(errorMsg.replace(/"/g,'"'));
}
}
else if (submitForm)
submitForm.submit();
if (setFocus && document.WAFV_Focus) {
if (document.getElementById(document.WAFV_Focus.name+"___Config") && document.WAFV_Focus.type.toLowerCase() == "hidden") {
var theEditor = FCKeditorAPI.GetInstance(document.WAFV_Focus.name);
theEditor.EditorWindow.focus();
setTimeout("setTimeout('document.WAFV_Stop = false;document.WAFV_StopAlert = false;',1)",1);
}
else {
document.tempFocus = document.WAFV_Focus;
setTimeout("document.tempFocus.focus();setTimeout('document.WAFV_Stop = false;document.WAFV_StopAlert = false;',1)",1);
}
}
else {
document.WAFV_Stop = false;
document.WAFV_StopAlert = false;
}
for (var x=0; x<document.WAFV_InvalidArray.length; x++) {
document.WAFV_InvalidArray[x].WAFV_Stop = false;
}
}
else {
document.WAFV_Stop = false;
document.WAFV_StopAlert = false;
if (submitForm) {
submitForm.submit();
}
document.MM_returnValue = true;
}
document.WAFV_Focus = false;
document.WAFV_Error = false;
document.WAFV_InvalidArray = false;
}
}
function WAValidateCD(triggerElement,targetElement,enable) {
var isValid = true;
var invalidArray = document.WAFV_InvalidArray;
if (invalidArray) {
if (triggerElement == document)
isValid = false;
else {
for (var x=0; x<invalidArray.length && isValid; x++) {
if (invalidArray[x]==triggerElement) {
isValid = false;
}
}
}
}
if (!isValid) {
enable = !enable;
}
if (targetElement.length) targetElement=targetElement[0];
if (enable) {
targetElement.WAFV_Stop = false;
}
else {
targetElement.WAFV_Stop = true;
}
document.WAFV_Focus = false;
document.WAFV_Error = false;
document.WAFV_InvalidArray = false;
}
function iRiteState(editorInstance,enable) {
if (!enable) {
if (document.all) {
editorInstance.EditorDocument.body.disabled = true;
}
else {
editorInstance.EditorDocument.designMode = "off";
}
editorInstance.EditorWindow.parent.FCK.ToolbarSet.Disable();
document.buttonRefreshStateClone = editorInstance.EditorWindow.parent.FCKToolbarButton.prototype.RefreshState;
document.specialComboRefreshStateClone = editorInstance.EditorWindow.parent.FCKToolbarSpecialCombo.prototype.RefreshState;
editorInstance.EditorWindow.parent.FCKToolbarButton.prototype.RefreshState = function(){return false;};
editorInstance.EditorWindow.parent.FCKToolbarSpecialCombo.prototype.RefreshState = function(){return false;};
}
else {
if (document.all) {
editorInstance.EditorDocument.body.disabled = false;
}
else {
editorInstance.EditorDocument.designMode = "on";
}
editorInstance.EditorWindow.parent.FCK.ToolbarSet.Enable();
if (document.buttonRefreshStateClone) {
editorInstance.EditorWindow.parent.FCKToolbarButton.prototype.RefreshState = document.buttonRefreshStateClone;
editorInstance.EditorWindow.parent.FCKToolbarSpecialCombo.prototype.RefreshState = document.specialComboRefreshStateClone;
}
editorInstance.EditorWindow.parent.FCK.ToolbarSet.RefreshModeState();
}
}
function WAValidateEN(triggerElement,targetElement,enable) {
if (!document.WAFV_StopAlert) {
document.WAFV_StopAlert = true;
var isValid = true;
var invalidArray = document.WAFV_InvalidArray;
if (invalidArray) {
if (triggerElement == document)
isValid = false;
else {
for (var x=0; x<invalidArray.length && isValid; x++) {
if (invalidArray[x]==triggerElement) {
isValid = false;
}
invalidArray[x].WAFV_Stop = false;
}
}
}
if (!isValid) {
enable = !enable;
}
if (enable) {
if (document.getElementById(targetElement.name+"___Config") && targetElement.type.toLowerCase() == "hidden") {
var theEditor = FCKeditorAPI.GetInstance(targetElement.name);
iRiteState(theEditor,true);
}
else {
targetElement.disabled = "";
}
}
else {
if (document.getElementById(targetElement.name+"___Config") && targetElement.type.toLowerCase() == "hidden") {
var theEditor = FCKeditorAPI.GetInstance(targetElement.name);
iRiteState(theEditor,false);
}
else {
targetElement.disabled = "disabled";
targetElement.disabled = "true";
}
}
document.WAFV_Error = false;
document.WAFV_Focus = false;
document.WAFV_Stop = false;
document.WAFV_InvalidArray = false;
document.WAFV_StopAlert = false;
}
}
//-->
</script>