2017-04-26 6 views
0

유성에 양식이 있습니다. 제출할 때 다른 서식 파일로 전달하고 싶습니다. 그러나 그것은 어떻게 작동하지 않습니다. 양식 제출 이벤트가 작동하지 않습니다 (유성)

형태의 경로

입니다 : 로컬 호스트 : 양식 3000/dateForm

입력 생일 (무관) 일, 월, 년입니다. 그러나 양식을 제출하고 양식을 제출하고 (Router.go ("/ display")를 가지고있는 경우) 주소 표시 줄에 주소가 "http://localhost:3000/dateform?day=25&month=9&year=1996"으로 표시됩니다 (25, 9, 1996은 양식의 입력 사항 임). 같은 양식 페이지.

제출 이벤트에서 다른 템플릿으로 앱 경로를 만들려면 어떻게해야합니까? main.html에서

HTML 코드 : 이벤트 처리기에서 main.js

Template.dateFormPage.events({ 
    'submit form': function(event){ 
    var day=event.target.day.value.parseInt(); 
    var month=event.target.month.value.parseInt()-1; 
    var year=event.target.year.value.parseInt(); 
    var today=new Date(); 
    var toDate=today.getDate(); 
    var toMonth=today.getMonth(); 
    var toYear=today.getFullYear(); 

    function monthDiff(d1, d2) { 
    var months; 
    months = (d2.getFullYear() - d1.getFullYear()) * 12; 
    months -= d1.getMonth() + 1; 
    months += d2.getMonth(); 
    return months <= 0 ? 0 : months; 
    } 

    var month_diff_raw=monthDiff(new Date(day, month, year), new Date(toDate, toMonth, toYear)); 

    Session.set("year_diff", month_diff_raw/12); 

    }, 
}); 

CONSOLE.LOG에

<template name="dateFormPage"> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css"> 
    <link rel="stylesheet" href="https://pingendo.com/assets/bootstrap/bootstrap-4.0.0-alpha.6.css" type="text/css"> 
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script> 
    <script src="https://pingendo.com/assets/bootstrap/bootstrap-4.0.0-alpha.6.min.js"></script> 
    <div class="py-5"> 
    <div class="container"> 
     <div class="row"> 
     <div class="col-md-12"> 
      <h1 class="display-1">Enter Your Birthday</h1> 
     </div> 
     </div> 
    </div> 
    </div> 
    <form> 
    <input type="text" placeholder="Day" name="day"> 
    <input type="text" placeholder="Month(number)" name="month"> 
    <input type="text" placeholder="Year" name="year"> 
    <input type="submit" class="btn btn-success"> 
    </form> 
</template> 

<template name="display"> 
    abcderfght 
</template> 

코드()도 나던 작품.

이 코드에서 잘못된 부분이 있습니까?

답변

0

매우 높은 기회 당신은 단순히 실제로 제출되는 양식을 방지해야합니다

event.preventDefault(); 

사용자가 이벤트 리스너를 호출 외에 당신의 submit 버튼을 누르면, 브라우저는 기본 조치가있는 양식을 제출 현재 페이지를 다시로드하십시오.

이것은 아마도 console.log이 작동하지 않는 이유를 설명합니다. 페이지가 다시로드 될 때 콘솔이 지워집니다.

+0

gowbs 너무 감사합니다. 앱이 비정상적으로 동작하는 유일한 방법은 누락되었습니다. –

+0

yw, 의견에 감사드립니다. 좋은 일을 계속하십시오! – ghybs