Javascript在点击时修剪空白

时间:2015-07-08 19:29:34

标签: javascript ajax forms whitespace trim

我有一个电子邮件表单字段。点击它,它执行这个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,'');

...但现在它使该按钮无用。换句话说,单击时按钮不会执行任何操作。

2 个答案:

答案 0 :(得分:1)

trim应该删除输入开头和结尾的空格:

var input = $('#email_search').val();
input = input.replace(/^\s+/, '').replace(/\s+$/, '');

答案 1 :(得分:1)

由于您使用的是jQuery,为什么不使用.trim()

此:

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

变为:

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