Проблема в том, вкл.beforeItemAdd
Я не могу изменить данные.У меня есть функция, которая обрезает введенные данные, например:
'https://google.com' will become 'google.com'
Но все равно возвращает нефильтрованные данные.См. Код ниже:
КОД :
$('input#domains').tagsinput({
tagClass: 'grey',
trimValue: true
});
function isValidURL(string) {
var res = string.match(/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);
if (res == null)
return false;
else
return true;
}
// Removes http://, https://, www.
function checksDomainInitial(domain){
return domain.replace(/(http(s)?:\/\/)?(www\.)?/, ""); // as suggested by @wp78de
}
$('input#domains').on('beforeItemAdd', function(event) {
if ( isValidURL(event.item) == false ){
event.cancel = true;
alert('"'+event.item+'"' + ' is not a valid Domain URL');
}else{
event.item = checksDomainInitial(event.item);
return event; // not returning the trimmed item ...
// ex: input => 'https://google.com' will become 'google.com'
// PROBLEM: still returns 'https://google.com' NOT 'google.com'
}
})