I create a i/p form in google site using Apps Script and i did the validation using the Apps Script coding.
Validation functions available in Apps script is not satisfying all the possibility of checking the error.
function validate(e)
{
var app = UiApp.getActiveApplication();
var flag=0;
var text = app.getElementById('name');
var textrequired = app.getElementById('namerequired');
var number = app.getElementById('number');
var numberrequired = app.getElementById('numberrequired');
var email = app.getElementById('email');
var emailrequired = app.getElementById('emailrequired');
var submit = app.getElementById('submit_button');
var valid = app.createClientHandler()
.validateNumber(number)
.validateNotInteger(text)
.validateEmail(email)
.forTargets(submit).setEnabled(true)
.forTargets(number,text,email).setStyleAttribute("color","black")
.forTargets(numberrequired,textrequired,emailrequired).setText('*').setStyleAttribute("color", "red").setVisible(true);
var invalidno = app.createClientHandler().validateNotNumber(number).validateMatches(number, '').forTargets(number).setStyleAttribute("color", "red").forTargets(submit).setEnabled(false).forTargets(numberrequired).setText('Please Enter a Valid No.').setStyleAttribute("color", "red").setVisible(true);
var validno = app.createClientHandler().validateNumber(number).forTargets(number).setStyleAttribute("color","black").forTargets(numberrequired).setText('*').setStyleAttribute("color", "red").setVisible(true);
var invalidText=app.createClientHandler().validateNumber(text).validateMatches(text, '').forTargets(text).setStyleAttribute("color", "red").forTargets(submit).setEnabled(false).forTargets(textrequired).setText('Please Enter a Valid Name.').setStyleAttribute("color", "red").setVisible(true);
var validText=app.createClientHandler().validateNotNumber(text).forTargets(text).setStyleAttribute("color","black").forTargets(textrequired).setText('*').setStyleAttribute("color", "red").setVisible(true);
var invalidemail=app.createClientHandler().validateNotEmail(email).validateMatches(email, '').forTargets(email).setStyleAttribute("color", "red").forTargets(submit).setEnabled(false).forTargets(emailrequired).setText('Please Enter a Valid Mail-Id.').setStyleAttribute("color", "red").setVisible(true);
var validemail=app.createClientHandler().validateEmail(email).forTargets(email).setStyleAttribute("color","black").forTargets(emailrequired).setText('*').setStyleAttribute("color", "red").setVisible(true);
number.addKeyPressHandler(invalidno).addKeyPressHandler(validno).addKeyPressHandler(valid).addKeyPressHandler(invalidText).addKeyPressHandler(invalidemail);
text.addKeyPressHandler(invalidText).addKeyPressHandler(validText).addKeyPressHandler(valid).addKeyPressHandler(invalidno).addKeyPressHandler(invalidemail);
email.addKeyPressHandler(invalidemail).addKeyPressHandler(validemail).addKeyPressHandler(valid).addKeyPressHandler(invalidno).addKeyPressHandler(invalidText);
if (text == ''){flag = 1;}
if (email == ''){flag = 1;}
if (number == ''){flag = 1;}
if(flag == 1){submit.setEnabled(false);}
return app;
}
I just placed my Validation function using Apps Script. I don't know why its not satisfying all the possibilities of the validation.
And also i have to do is to enable the submit button after all the fields satisfy the validation. After once it enabled, if i make any error in any field it will not get disable correctly. I wrote the coding correctly i think so. Please take a look at my validation function and give me some suggestion to make it possible.
Please guide me,
Thanks & Regards,
chocka.