I want to set the credit card memo value in a specific format. I am using validate Field function when users enter an invalid value an alert is shown. But my alert goes into an infinite loop.
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
*/
define(['N/record', 'N/search','N/error'],
/**
* @param{record} record
* @param{search} search
* @param{error} error
*/
function (record, search,error) {
var flag = true;
function validateField(context) {
try {
var currentRec = context.currentRecord;
var fieldName = context.fieldId;
var sublistName = context.sublistId;
var currIndex = currentRec.getCurrentSublistIndex({
sublistId: 'creditcards'
});
var count = 0;
if (sublistName == 'creditcards' && fieldName == 'ccmemo') {
var memo = currentRec.getCurrentSublistValue({
sublistId: 'creditcards',
fieldId: 'ccmemo',
line: currIndex
});
var paymentMethod = currentRec.getCurrentSublistValue({
sublistId: 'creditcards',
fieldId: 'paymentmethod',
line: currIndex
});
log.debug('memo',memo);
for (var i = 0; i < memo.length; i++) {
if (memo[i] == '/') {
count = count + 1;
}
}
var splittedData = memo.split('/');
if (count != 2) {
alert('Format is not valid (Address / Zip Code / Security Code)');
flag = false;
return false;
}
var zipCode = splittedData[1];
zipCode = zipCode.toString();
zipCode = zipCode.replace(/^\s+|\s+$/gm,'');
var reg = new RegExp('^[0-9]*$');
if (reg.test(zipCode) == false) {
alert('Please enter numeric data for Zip Code');
flag = false;
return false;
}
else if (zipCode.length != 5) {
alert("Please enter valid zip code.! ");
flag = false;
return false;
}
var securityCode = splittedData[2];
securityCode = securityCode.toString();
securityCode = securityCode.replace(/^\s+|\s+$/gm,'');
if (reg.test(securityCode) == false) {
alert('Please enter numeric data for Security Code');
flag = false;
return false;
}
else if(!paymentMethod){
alert('Please select Payment Method');
flag = false;
return false;
}
else if(paymentMethod == 6 && securityCode.length != 4){
alert('Please enter valid Security Code');
flag = false;
return false;
}
else if(paymentMethod != 6 && securityCode.length != 3){
alert('Please enter valid Security Code');
flag = false;
return false;
}
}
return true;
}
catch (e) {
log.debug('Exception', e);
}
}
return {
validateField: validateField
};
});