2015-01-21 6 views
0

Ok У меня есть два поля ввода с KeyUp события, это JSSetInterval и поля ввода

$(document).ready(function() { 
     is_draft_started = 0; 

     $(":input").keyup(function() { 
      if(is_draft_started == 0) { 
       s2 = setInterval('draft("' + frm_name + '")', auto_save_time); 
       is_draft_started = 1; 
      } 
     }); 

setInterval вызов функции проекта

var frm_name = 'myform'; 
    var auto_save_time = 1000 * <?php echo AUTO_SAVE_TIME?>; 

    <?php if($_GET["uid"] != "" && isset($_GET["uid"])): ?> 
      var id_draft = '<?php echo $draft->id?>'; 
    <?php else: ?> 
      var id_draft = 0; 
    <?php endif; ?> 

    function draft(forma_name) { 
     if(id_draft == 0) { 
      $.post("?c=licnePoruke&f=slanje&pk=<?php echo $pk?>&saveDraft=1", $("[name=" + forma_name + "]").serialize(), 
        function(data) { 
         id_draft = data; 
               $('#draft_id').val(id_draft); 
         last_save_time(); 
        }); 
     } 
     else { 
      $.post("?c=licnePoruke&f=slanje&pk=<?php echo $pk?>&updateDraft=" + id_draft, $("[name=" + forma_name + "]").serialize(), 
        function(data) { 
         last_save_time(); 
        }); 
     } 

     return false; 
    } 

, но как-то в проекте функции первого, если вызывается дважды, почему бы и нет. Любая помощь для моей проблемы

ответ

1

Вы должны использовать setTimeout вместо setInterval, где позже функция выполнения обратного вызова (как draft) каждый раз, когда вы встречаете auto_save_time, как 1000ms, 2000 мс, 3000ms .......