현재 페이지의 양식에 무엇인가 입력 된 경우 사용자가 현재 페이지를 떠나지 못하게하는 Rails 헬퍼 또는 Rails 방법이 있습니까?레일즈 3는 사용자가 이동하여 변경 사항을 잃지 않도록 도와줍니다.
양식에 변경 사항을 저장하지 않은 경우 머리글 링크를 클릭하면 사람들이 데이터를 잃지 않도록하기 위해 노력하고 있습니다.
현재 페이지의 양식에 무엇인가 입력 된 경우 사용자가 현재 페이지를 떠나지 못하게하는 Rails 헬퍼 또는 Rails 방법이 있습니까?레일즈 3는 사용자가 이동하여 변경 사항을 잃지 않도록 도와줍니다.
양식에 변경 사항을 저장하지 않은 경우 머리글 링크를 클릭하면 사람들이 데이터를 잃지 않도록하기 위해 노력하고 있습니다.
레일즈는 제출 될 때까지 양식의 상태를 알지 못하지만이 경우 도움이 될 자바 스크립트를 추가 할 수 있습니다.
$('#header > a').click(function(){
$('input').each(function(i){
if ($(this).attr(value) != '') {
if (confirm('are you sure you want to leave this form unfinished?') != 'true) {
alert('quitter!);
}
}
});
});
편집 : (당신이 당신의 질문에 지정 등)에만 헤더 링크 클릭을 처리하도록 좋아, 여기 onbeforeunload 사용하는 솔루션입니다. 전체 페이지 소스 나는 당신에 구축 뭔가주는거야 확인하기 위해 그것을 테스트하기 때문에 : 물론
<html>
<head>
<title>Foo</title>
<script>
window.onbeforeunload = function(){
var inputs = document.getElementsByTagName('input');
var unfinished = 'false';
for (var i=0; i<inputs.length; ++i) {
if (inputs[i].value != '') {
unfinished = 'true';
}
}
if (unfinished == 'true') {
return 'Are you sure you want to leave?';
}
}
</script>
</head>
<body>
<form>
<input name='foo'/>
<input type='submit'/>
</form>
<a href='/'>Leave</a>
</body>
</html>
이이 레일 특정 헬퍼되지 않습니다,하지만 당신은 뱉어 자신의 도우미를 작성할 수 당신의 견해에 이것과 비슷한 것을 담은 스크립트 태그. 빈칸에 대한 모든 입력을 검사하는 것보다는 양식 별 검사를 넣는 것이 좋습니다. 내가 만든 모든 형태는 어떤 형태로든 아름답고 독특한 눈송이였습니다.
레일즈에서는 아무것도 사용하지 않습니다. 플러스는 버튼과 같은 다른 것을 클릭하는 것을 설명하지 않습니다. 나는 폼 태그 도우미처럼 레일스가 초기 페이지 언로드를 막기 위해 일부 JavaScript 코드를 생성하도록 지정하는 것과 같은보다 우아한 솔루션을 찾고있었습니다. – Amy
@Amy Rails 3은 UJS를 사용하며 특정 기능을 제공하기 위해 JavaScript 드라이버 [이 드라이버] (https://github.com/rails/jquery-ujs/blob/master/src/rails.js#files)에 의존합니다. Rails는 더 이상 실제로 헬퍼에서 JavaScript 코드를 생성하지 않습니다. 여러분이 찾고자하는 것과 가장 가까운 것은'