2015-07-08 5 views
0

У меня есть поле формы электронной почты. По щелчку, он выполняет это Javascript ...Javascript обрезать пробел на клике

$(document).on('click', '#add_delegate', function() { 
    RegistrationHelper.added_delegate = true; 
    // var button = $(event.target); 
    var button = $(this); 
    var uri = button.data('url'); 
    if (typeof uri === 'undefined') { 
    return false; 
    } 
    var input = $('#email_search'); 
    var data = {email:input.val()}; 
    data.text().replace(/ /g,''); 
    var spinner = $('#delegate_add_spinner'); 

    spinner.css({display:'inline-block'}); 

    $.ajax({type:'POST', url: uri, data:data}).success(function(card) { 

    var html = $(card); 
    var data_id = html.attr('data-id'); 
    var existing_elem = $('.mini_addresscard[data-id=' + data_id + ']'); 
    if (existing_elem.length < 1) { 

     input.popover('hide'); 
     // this is in a seperate timeout because IE8 is so damn stupid; it crashes if run directly 
     setTimeout(function() { 
     $('#address_cards').append(html); 
     var last_card = $('#address_cards div.mini_addresscard').last(); 
     //last_card.get(0).innerHTML = card; 
     // html.attr("id", 'sdklfjaklsdjf'); 
     last_card.css({display:'none'}).show('blind'); 
     }, 10); 

    } else { 

     var background = existing_elem.css('background'); 
     existing_elem.css({'background':'#FFFFAC'}); 
     existing_elem.animate({ 
     'background-color':'#EBEDF1' 
     }, { 
     complete: function() { 
      existing_elem.css({background:background}); 
     } 
     }); 
     // var border_color = existing_elem.css('border-color'); 
     // existing_elem.css({'border-color':'#EFF038'}); 
     // existing_elem.animate({'border-color':border_color}); 
    } 

    }).complete(function(data) { 
    spinner.hide(); 
    }).error(function(data) { 
    var input = $('#email_search'); 
    input.popover("destroy"); 

    var error = 'Please try again later'; //incase something crazy happens 
    if(data.status == "422"){ 
     error = 'You cannot add yourself as a supervisor.'; 
     } 
    if(data.status == "404"){ 
     error = 'Could not find anyone with that email address.'; 
     } 
    add_popover(input, error); 
    input.popover('show'); 
    }); 

    return false; 
}); 

Моя цель состоит в том, чтобы обрезать пробелы до запроса AJAX

Так как вы можете видеть в коде выше я добавил строку

data.text().replace(/ /g,''); 

... но теперь он делает эту кнопку бесполезной. Другими словами, кнопка не делает ничего при нажатии.

ответ

1

Поскольку вы используете JQuery, почему бы не сделать использование .trim():

Это:

var data = {email:input.val()}; 
data.text().replace(/ /g,''); 

Ставок:

var data = {email:$.trim(input.val())}; 
1

trim должен удалить пробелы в начале и в конце ввода:

var input = $('#email_search').val(); 
input = input.replace(/^\s+/, '').replace(/\s+$/, ''); 
Смежные вопросы