Skip to content

Commit 6d804e8

Browse files
committed
victorjonsson#328 - Required fields validation message. Unit test for new feature and fixed previous.
1 parent 9a22cab commit 6d804e8

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

form-validator/jquery.form-validator.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,12 @@
10271027
if (!validationErrorMsg) {
10281028
validationErrorMsg = $elem.attr(conf.validationErrorMsgAttribute);
10291029
if (!validationErrorMsg) {
1030-
validationErrorMsg = language[validator.errorMessageKey];
1030+
if(typeof validator.errorMessageKey !== 'function') {
1031+
validationErrorMsg = language[validator.errorMessageKey];
1032+
}
1033+
else {
1034+
validationErrorMsg = language[validator.errorMessageKey(conf)];
1035+
}
10311036
if (!validationErrorMsg) {
10321037
validationErrorMsg = validator.errorMessage;
10331038
}
@@ -1449,6 +1454,7 @@
14491454
*/
14501455
LANG: {
14511456
errorTitle: 'Form submission failed!',
1457+
requiredField: 'This field is required',
14521458
requiredFields: 'You have not answered all required fields',
14531459
badTime: 'You have not given a correct time',
14541460
badEmail: 'You have not given a correct e-mail address',
@@ -1565,7 +1571,14 @@
15651571
}
15661572
},
15671573
errorMessage: '',
1568-
errorMessageKey: 'requiredFields'
1574+
errorMessageKey: function(config) {
1575+
if (config.errorMessagePosition === 'top' || config.errorMessagePosition === 'custom') {
1576+
return 'requiredFields';
1577+
}
1578+
else {
1579+
return 'requiredField';
1580+
}
1581+
}
15691582
});
15701583

15711584
/*

test/qunit.html

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,18 +175,25 @@
175175
* Test error message
176176
*/
177177
test('Error messages', function() {
178-
var $input = input('', {'':'required'}),
178+
179+
// default inline (below input) error messages
180+
var $input = input('', 'required'),
179181
result = $.formUtils.validateInput($input, $.formUtils.LANG, $.formUtils.defaultConfig(), $form);
182+
equal(result.errorMsg, 'This field is required', 'Incorrect message');
180183

181-
equal('You have not answered all required fields', result.errorMsg, 'Incorrect message');
184+
// messages on top of form
185+
var configWithTopMsg = $.formUtils.defaultConfig();
186+
configWithTopMsg.errorMessagePosition = "top";
187+
result = $.formUtils.validateInput($input, $.formUtils.LANG, configWithTopMsg, $form);
188+
equal(result.errorMsg, 'You have not answered all required fields', 'Incorrect message');
182189

183190
$input = input('--', {'':'required alphanumeric', 'error-msg-alphanumeric':'custom for alphanum'}),
184191
result = $.formUtils.validateInput($input, $.formUtils.LANG, $.formUtils.defaultConfig(), $form);
185-
equal('custom for alphanum', result.errorMsg, 'Incorrect message');
192+
equal(result.errorMsg, 'custom for alphanum', 'Incorrect message');
186193

187194
$input = input('sam', {'':'required alphanumeric length', length:'min10', 'error-msg-alphanumeric':'custom for alphanum'}),
188195
result = $.formUtils.validateInput($input, $.formUtils.LANG, $.formUtils.defaultConfig(), $form);
189-
equal('The input value is shorter than 10 characters', result.errorMsg, 'Incorrect message');
196+
equal(result.errorMsg, 'The input value is shorter than 10 characters', 'Incorrect message');
190197

191198
});
192199

0 commit comments

Comments
 (0)