Изменить элемент beforeItemAdd в Bootstrap TagsInput - PullRequest
0 голосов
/ 17 сентября 2018

Проблема в том, вкл.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'
  }
})
...