ContactUs Form
This is a simple form created using apps script. After filling the form, when user hits submit, Site Owner will receive a mail along with the details submitted by the user. This form validates all the three fields.
Example Demo:
*This is just for demo, Message sent through this form will not be delivered to author of the page/website.*
Example Code:
//Global Variables
adminsEmail = 'Your Email'// Plz change the email address
function doGet() {
//Create User Interface and Style the form Elements
var app = UiApp.createApplication();
var panel = app.createVerticalPanel();
var statusmessage = app.createLabel("Thanks for Contacting, We have received you message and will reply you ASAP")
.setStyleAttribute("fontSize", "14px")
.setStyleAttribute("fontWeight", "bold")
.setStyleAttribute("display", "block")
.setStyleAttribute("textAlign", "center")
.setStyleAttribute("color", "#008000").setVisible(false).setId('response');
var grid = app.createGrid(4, 3).setId('maingrid');
var nameLabel = app.createLabel("Name:").setWidth("80px");
var nameTextBox = app.createTextBox().setStyleAttribute("width", "230px")
.setStyleAttribute("backgroundColor", "#99FFCC")
.setStyleAttribute("border", "1px solid #008000").setName('name').setId('name');
var nameRequiredLabel = app.createLabel("*").setId('namerequired');
var emailLabel = app.createLabel("Email:");
var emailTextBox = app.createTextBox().setStyleAttribute("width", "230px")
.setStyleAttribute("background-color", "#99FFCC")
.setStyleAttribute("border", "1px solid #008000").setName('email').setId('email');
var emailRequiredLabel = app.createLabel("*").setId('emailrequired');
var messageLabel = app.createLabel("Message:");
var messageTextArea = app.createTextArea().setStyleAttribute("width", "230px")
.setStyleAttribute("backgroundColor", "#99FFCC")
.setStyleAttribute("border", "1px solid #008000")
.setStyleAttribute("height", "60px;").setName('message').setId('message');
var messageRequiredLabel = app.createLabel("*").setId('messagerequired');
var submitButton = app.createButton("Submit").setHeight("20px")
.setStyleAttribute("fontSize", "12px");
var resetButton = app.createButton("Clear Form").setHeight("20px")
.setStyleAttribute("fontSize", "12px");
var buttonGrid = app.createGrid(1,2);
buttonGrid.setWidget(0, 0, submitButton)
.setWidget(0, 1, resetButton);
grid.setWidget(0, 0, nameLabel)
.setWidget(0, 1, nameTextBox)
.setWidget(0, 2, nameRequiredLabel)
.setWidget(1, 0, emailLabel)
.setWidget(1, 1, emailTextBox)
.setWidget(1, 2, emailRequiredLabel)
.setWidget(2, 0, messageLabel)
.setWidget(2, 1, messageTextArea)
.setWidget(2, 2, messageRequiredLabel)
.setWidget(3, 1, buttonGrid);
panel.add(statusmessage).add(grid);
app.add(panel);
//Controles and click handler
var submitHandler = app.createServerClickHandler('validateAndMail');
submitHandler.addCallbackElement(nameTextBox)
.addCallbackElement(emailTextBox)
.addCallbackElement(messageTextArea);
submitButton.addClickHandler(submitHandler);
var resetHandler = app.createServerClickHandler('resetFields');
resetHandler.addCallbackElement(nameTextBox)
.addCallbackElement(emailTextBox)
.addCallbackElement(messageTextArea);
resetButton.addClickHandler(resetHandler);
return app;
}
function validateAndMail(e){
var flag = 0;
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
var app = UiApp.getActiveApplication();
var name = e.parameter.name;
var email = e.parameter.email;
var message = e.parameter.message;
app.getElementById('namerequired').setText("*");
app.getElementById('emailrequired').setText("*");
app.getElementById('messagerequired').setText("*");
if (name == ''){app.getElementById('namerequired').setText("*Name is required").setStyleAttribute("color", "#F00");flag = 1;}
if (email == ''){app.getElementById('emailrequired').setText("*Email is required").setStyleAttribute("color", "#F00");flag = 1;}
if (email != '' & emailPattern.test(email) == false){app.getElementById('emailrequired').setText("*Please enter a valid Email").setStyleAttribute("color", "#F00");flag = 1;}
if (message == ''){app.getElementById('messagerequired').setText("*Message is required").setStyleAttribute("color", "#F00");flag = 1;}
if(flag == 0){
MailApp.sendEmail(adminsEmail, '[Google Apps Script Example]: '+name+' has contacted through the site form', 'textBody', {htmlBody: '<b>Hi</b><br/>'+message+'<br/>Please reply on my mail:'+email,replyTo: email});
app.getElementById('response').setVisible(true);
app.getElementById('namerequired').setText("*");
app.getElementById('emailrequired').setText("*");
app.getElementById('messagerequired').setText("*");
app.getElementById('maingrid').setVisible(false);
}
return app;
}
function resetFields(e){
var app = UiApp.getActiveApplication();
app.getElementById('name').setValue('');
app.getElementById('email').setValue('');
app.getElementById('message').setValue('');
app.getElementById('namerequired').setText("*");
app.getElementById('emailrequired').setText("*");
app.getElementById('messagerequired').setText("*");
return app;
}