2015-01-15 2 views
0

datepicker를 사용하여 날짜가있는 하위 문서를 문서에 삽입하는 두 개의 다른 템플릿이 있습니다. 하나는 똑같이 보이지만 작동하지 않습니다. 항목 만기 인서트가 잘 작동합니다. 지연 - 인서트가 페이지를 새로 고침 할 때까지. rajit : bootstrap3-datepicker 패키지를 사용하고 있습니다.Meteor - 새로 고침을 방지 할 수 없습니다.

HTML (축합)

<template name="itemsList"> 
    {{#each actionItems}} 
    {{> item}} 
    {{/each}} 
</template> 

<template name="item"> 
    <div class="item"> 
    <div class="item-content"> 
     <div class="mod-table"> 
     <form class="form-inline mod-field"> 
      {{#unless actionItem}} 
      {{> delayUntil}} 
      {{/unless}} 
     </form> 
     {{#if actionItem}} 
      {{> actionModtable}} 
     {{/if}} 
     </div> 
    </div> 
    </div> 
</template> 

<template name="delayUntil"> 
    <form class="form-inline delay-until"> 
    <div class="mod-field"> 
     <input type="text" class="form-control" name="text" id="delay-until-picker" placeholder="Ignore until..." /><button class="btn btn-default" type="submit">Submit</button> 
    </div> 
    </form> 
</template> 

<template name="actionModtable">  
    {{> datepicker}} 
</template> 

<template name="datepicker"> 
    <form class="form-inline item-due"> 
    <div class="mod-field"> 
     <input type="text" class="form-control" name="text" id="due-date-picker" placeholder="Enter due date" /><button class="btn btn-default" type="submit">Submit</button> 
    </div> 
    </form> 
</template> 

JS (축합)

Template.datepicker.rendered = function() { 
    $('#due-date-picker').datepicker({ 
    todayBtn: true, 
    autoclose: true, 
    todayHighlight: true 
    }); 
}; 

Template.datepicker.events({ 
    'submit .item-due': function(event) { 
    event.preventDefault(); 

    var itemDue = event.target.text.value; 

    Items.update(this._id, {$set: {itemDue: itemDue}}); 

    event.target.text.value = ""; 

    return false; 
    }, 
}); 

Template.delayUntil.rendered = function() { 
    $('#delay-until-picker').datepicker({ 
    todayBtn: true, 
    autoclose: true, 
    todayHighlight: true 
    }); 
}; 

Template.delayUntil.events({ 
    'submit .delay-until': function(event) { 
    event.preventDefault(); 

    var delayUntil = event.target.text.value; 

    Items.update(this._id, {$set: {delayUntil: delayUntil}}); 

    event.target.text.value = ""; 

    return false; 
    }, 
}); 
+0

ID를 사용하고있어 잘못된 요소를 어떻게 든 선택했기 때문에 실패 할 수 있습니까? 페이지에 중복 된 ID가 있습니까? – stubailo

+0

아니면 두 템플릿의 컨텍스트가 다르기 때문에 가능합니까? 두 가지 모두에서'this._id'를 로깅하여 기대하는 바를 확인할 수 있습니까? – richsilv

답변

1

그래서 응답이 조금 바보였다. 양식에 임베디드 된 양식이 있습니다 (죄송합니다). 나는 둥지를 없애고 모두 세상에 다시 맞습니다.

+0

이것은 폼 제출 이벤트에'event.preventDefault()'를 추가하는 것을 잊어 버렸다는 것을 알게되었습니다!) – avalanche1

관련 문제