2011-10-10 5 views
0

jQuery를 통해 제출할 양식이 자동 저장됩니다. 이것은 Ruby On Rails 3에 있습니다. 내 모델은 자동 저장하려는 게시물입니다. 게시물 모델은 부울 필드 (초안)가 true이면 특정 유효성 검사를 무시하도록 조정됩니다. (초안이 nil이면 유효성 검사가 실행됩니다.)jQuery로 (자동 저장)을 제출할 때 어떻게 데이터를 html 폼에 추가 할 수 있습니까?

다음 코드를 사용하여주기를 지정하여 양식을 자동 저장합니다.

$(document).ready(function() { 
    setInterval(function() { 
    $('#post_form form[data-remote]').submit(); 
    }, 1000*60); // 1000ms * 60s = 1m 
}); 

형태로이 기능에 의해 제출하면, 나는 변수를 포함 할 : 초안은 어떻게 든 등 검증을 무시하는 사실 .. 난이 자바 스크립트에 추가 할 수있는 방법이>를 달성하기 위해 =? 아니면 단순히 불가능한가요?

레일스 코드에 들어가서 다른 해결책을 찾아야 할 경우 알려 주시면 관련 코드를 게시하겠습니다.

고마워요!

답변

2
$(document).ready(function() { 
    setInterval(function() { 
    var draft = $('#draft'); 
    if(draft == null) 
    { 
     $('post_form').append('<input type="hidden" name="draft" id="draft" value="true" />'); 
     draft = $('#draft'); 
    } 
    draft.val('true'); 


    $('#post_form form[data-remote]').submit(); 
    }, 1000*60); // 1000ms * 60s = 1m 
}); 

코드를 업데이트 했으므로 값이 true이고 이름이 초안 인 숨겨진 입력 텍스트 상자를 만들었습니다.

나는, $('#post_form form[data-remote]').submit() 전체가 제출 할 것,이 모두의

0

먼저 도움이되기를 바랍니다, 사용자는 action 페이지로 전송됩니다. 당신이하고 싶은 것은 AJAX 게시물입니다.

두 번째로, 매번 (POST 할 때마다) DOM을 다시 트래버스하고 싶지는 않습니다. 나중에 다시 사용할 수 있도록 양식을 변수에 캐시해야합니다. 여기

은 당신이 그것에 대해 가고 싶어하는 방법은 다음과 같습니다

$(document).ready(function() { 

    var $form = $('#post_form form[data-remote]'), 
     href = $form.attr('href'); 

    setInterval(function() { 
     $.post(href, $form.serialize() + '&draft=true'); 
    }, 60000); 

});