2016-12-23 3 views
3

Я хочу создать кнопку отправки, которая вернет счет при нажатии. Однако, я получаю ошибку "getScore() не определен.Создание кнопки отправки с помощью Meteor

Я также хочу обновить результат до базы данных , но не уверен, что сделаю все правильно.

Вот JavaScript

Meteor.user = function() { 
    return Accounts.user(); 
}; 

if (Meteor.isClient) { 


    Template.personality.events({ 
    'click :submit': function (event, template) { 
    var getCheckedValue = template.find('input:radio[name]:checked'); 
    console.log($(getCheckedValue).val()), 



    function getScore(){ 
     var answers = ["1","2","3","4","5"], 
     tot = answers.length; 
     var score = 0; 
     for (var i=0; i<tot; i++) 
      if(getCheckedValue[i] ===answers[i]) { 
     score += 1; // increment only 
     return score; 
      } 
     },    


     alert("Your score is "+getScore()+ "/"+ tot); 

    // update the score to database 
      var selectedUser = Session.get('this.userId'); 
      UserResult.update({ _id: selectedUser }, { score: 5 }); 
    //   } 

    } 
}); 
} 

HTML

<template name="personality"> 
<h1>I see myself as someone who...</h1> 

    <form> 
    <ul> 
    <p>...is talkative.</p> 
     <li> 
     <input type = "radio" name = "Q1" value = "1">1 
     <input type = "radio" name = "Q1" value = "2">2 
     <input type = "radio" name = "Q1" value = "3">3 
     <input type = "radio" name = "Q1" value = "4">4 
     <input type = "radio" name = "Q1" value = "5">5 
     </li> 
     <p>...Tends to find fault with others.</p> 

     <li> 
     <input type = "radio" name = "Q2" value = "1">1 
     <input type = "radio" name = "Q2" value = "2">2 
     <input type = "radio" name = "Q2" value = "3">3 
     <input type = "radio" name = "Q2" value = "4">4 
     <input type = "radio" name = "Q2" value = "5">5 
     </li> 
     <input type = "submit" value = "SUBMIT"/>  

     </ul> 
    </form> 


</template> 

ответ

0

попробуйте использовать

UserResult.update({ _id: selectedUser }, {**$set**:{ score: 5 }}); 

вместо

UserResult.update({ _id: selectedUser }, { score: 5 }); 
+0

спасибо за ответ, это было бы здорово, если вы также взглянуть на getScore() функция – Lucia

0

Я нашел, что никто не ответил на этот вопрос, поэтому я использовал пакет автоматической формы. Сделать жизнь намного проще.

http://autoform.meteorapp.com/quickform

Смежные вопросы