validation functions in google apps script is not working properly

Posted by chocka on Stack Overflow See other posts from Stack Overflow or by chocka
Published on 2012-09-03T17:58:59Z Indexed on 2012/09/05 3:38 UTC
Read the original article Hit count: 193

Filed under:

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.

© Stack Overflow or respective owner

Related posts about google-apps-script