2015-05-19 68 views
2

我正在使用表单来收集数据。一旦用户点击提交,就会更新用户和问题文档。该功能适用​​于台式机,但不适用于移动设备。event.target无法在移动设备上工作

当我对值answerwager进行硬编码时,它对两者都有效。这个问题似乎是event.target.wager.value。我试着把值放在Session,我试着将它们转换为int和字符串。下面

代码是Main.js

Template.questionCard.events({ 
    'submit form': function(event) { 
     event.preventDefault(); 
     var questionId = this._id; 
     var currentUser = Meteor.userId(); 

     // Collects the data from the form when submitted. 
     // var answer = event.target.play.value; 
     // var wager = event.target.wager.value; 

    var answer = "Run"; 
    var wager = 5000; 

    //Add user data to question 
    Meteor.call('questionAnswered', currentUser, questionId, answer, wager); 

    console.log('User: ' + currentUser + ' answered question ' + questionId + ' -- ' + answer + ' ' + wager); 
} 

下面是questionAnswered方法调用。

'questionAnswered' : function(user, questionId, answer, wager){ 
    QuestionList.update(questionId, {$push: {usersAnswered: user}}); 
    console.log(user + " answered " + questionId) 
    console.log("User wagered " + wager + " coins."); 
    Meteor.users.update({_id: user}, {$inc: { "profile.coins": -wager}}); 


    //Add question, wager and answer to the user's account. 
    Meteor.users.update({ _id: user}, {$push: {questionAnswered: { questionId: questionId, 
     wager: wager, answered: answer}}}); 
    console.log(user + " answered " + answer); 

    //Update the question with the users answer and wager. 
    if (answer == "Run"){ 
     QuestionList.update(questionId, {$push: { usersRun: {userID: user, amount: wager } }}); 
    } else if (answer == "Pass"){ 
     QuestionList.update(questionId, {$push: {usersPass: {userID: user, amount: wager}}}); 
    } else if (answer == "Fumble"){ 
     QuestionList.update(questionId, {$push: {usersFumble: {userID: user, amount: wager}}}); 
    } else if (answer == "Interception"){ 
     QuestionList.update(questionId, {$push: {usersInterception: {userID: user, amount: wager}}}); 
    } 

回答

0

发现了Jimmy Mian-Guan Lim的评论here。使用无线电输入和组的名称来查找选中的选项。然后返回值。

var answer = template.find('input:radio[name=play]:checked').value; 
    var wager = template.find('input:radio[name=wager]:checked').value; 
0

尝试使用event.currentTarget来代替。

流星似乎工作得更好一点。

相关问题