-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjquery.formify.js
116 lines (99 loc) · 3.46 KB
/
jquery.formify.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
(function ($) {
"use strict";
$.fn.formify = function (options) {
var formify = this,
formifyToken = options.token,
formifySecret = options.secret,
formifyURL = options.url,
formifyFields = options.fields,
formifyFieldsCount = formifyFields.length;
formify.setFormSelector = function () {
var selectorIsForm = $(this).prop('tagName').toLowerCase() === 'form';
if (selectorIsForm) {
formify.processFormData($(this));
} else {
$(this).append('<form class="formify"></form>');
formify.processFormData($('.formify'));
}
};
formify.processFormData = function (formifyForm) {
var i, field, fieldType;
for (i = 0; i < formifyFieldsCount; i += 1) {
field = formifyFields[i];
fieldType = field.type;
formify.sortFieldType(formifyForm, fieldType, field);
}
formifyForm.append('<input type="submit" id="formifySubmit">');
};
formify.sortFieldType = function (formifyForm, type, field) {
var fieldType = type,
isTextType = fieldType === 'text',
isSelectType = fieldType === 'select';
if (isTextType) {
formify.createTextInput(formifyForm, field);
}
if (isSelectType) {
formify.createSelect(formifyForm, field);
}
};
formify.createTextInput = function (formifyForm, field) {
var name = field.name,
label = field.label,
placeholder = field.placeholder,
required = field.required || false;
formifyForm.append('<div class="formify-container">\n \
<label class="formify-label" for="' + name + '">' + label + '</label>\n \
<input type="text" id="' + name + '" placeholder="' + placeholder + '" required="' + required + '">\n \
</div>');
};
formify.createSelect = function (formifyForm, field) {
var i, option,
name = field.name,
label = field.label,
placeholder = field.placeholder,
selectOptions = field.fieldOptions,
optionsCount = selectOptions.length,
required = false || field.required;
formifyForm.append('<div class="formify-container">\n \
<select class="formify-select" id="' + name + '" required="' + required + '">\n \
</select>\n \
</div>');
$('#'+name).append('<option selected="selected">' + placeholder + '</option>');
for (i = 0; i < optionsCount; i+=1) {
option = selectOptions[i];
$('#'+name).append('<option value="' + option + '">' + option + '</option>');
}
}
formify.processSubmit = function () {
var formDataName = $('#name').value(),
formDataEmail = $('#email').value(),
formDataState = $('#state').value(),
formdataNivel = $('#nivel').value();
var formData = {
'name': formDataName,
'email': formDataEmail,
'estado': formDataState,
'nível': formdataNivel
}
var submitData = {
'token': formifyToken,
'secret': formifySecret,
'lead': formData
}
$.ajax({
type: "POST",
url: formifyURL,
data: submitData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
alert('Envio efetuado com sucesso');
},
error: function(errMsg) {
alert('Falha no envio: '+errMsg);
}
});
}
return formify.setFormSelector();
};
})(jQuery);