2013-11-25 4 views
0

У меня есть следующий вид, представленный AJAX:Как подать форму Ajax на focusout()

HTML

<form class="form-horizontal" id="formEditUsername" action="<?php echo URL; ?>account/editusername_action" method="post"> 
    <input type="text" class="form-control" name="user_name" id="user_name" placeholder="Add username" value="User "> 
    <button type="submit" class="btn btn-default">Save</button> 
</form> 

AJAX

$("#formEditUsername").submit(function(event){ 
     //disable default click operation 
     event.preventDefault(); 

     var action_url = $(this).attr("action"); 
     $(".help-block.username").hide().html("<i class='fa fa-refresh fa-spin'></i> &nbsp;&nbsp;Processing...").fadeIn('slow'); 
     console.log(action_url); 
     var postData = $(this).serializeArray(); 
     //console.log(postData); 

     $.post(action_url,postData,function(data){ 

      console.log(data); 
      var obj = $.parseJSON(data); 
      $(".help-block.username").html("Saving..."); 

      if(obj.status == "error") 
      { 
      $(".help-block.username").css({color: '#990033'}); 
      $(".help-block.username").html(obj.message).fadeIn('slow'); 

      }; 

      if(obj.status == "success") 
      { 
       $(".help-block.username").css({color: '#00b25a'}); 
       $(".help-block.username").html(obj.message).fadeIn('slow'); 
       $(".namebox").html(obj.username); 
      } 
     }); 

    }); 

Я хочу, чтобы добавить функцию так что форма отправляется с focusout() после того, как вход (#user_name) теряет фокус. Есть идеи?

+4

focusout = Размытие – karaxuna

+0

я не понимаю? Спасибо – alias51

ответ

3
$('#user_name').on('blur', function() { 
    $("#formEditUsername").trigger('submit'); 
}); 
+0

Спасибо, почему я должен использовать размытие, а не фокусное расстояние, как в ответ Раджапрабху? – alias51

+1

@ alias51 http://stackoverflow.com/questions/8973532/blur-vs-focusout-any-real-differences –

+0

У вас есть элемент ввода, и правильным событием для этого элемента является событие размытия, в то время как событие фокуса предназначенный для использования там, где вам нужна волшебная магия, добавленная jQuery. – adeneo

2

Чтобы отправить форму, используйте:

$('#user_name').on('focusout', function() { 
    $("#formEditUsername").get(0).submit(); // this fires JS native event, not jquery handler 
}); 
Смежные вопросы