2015-08-18 35 views
0

我有一個流星應用程序頁面中的表單列表,這個列表是動態生成的,所有表單都具有相同的類。 所以我讓事件在我的模板的事件區域提交,但是當我提交表單時,只有第一個表單工作,如果我提交第二個表單,例如流星事件瞭解事件來自第一個,我不知道如何將表單ID傳遞給流星事件,所以我無法從正確的表單中獲取數據。有人可以幫助我嗎?如何從流星窗體列表中的窗體獲取正確的提交內容?

這是我的事件:

'submit .form-equation': function (e, t) { 
     e.preventDefault(); 

     var name = t.find('#name').value, 
      equation = t.find('#equation').value, 
      order = Number(t.find('#order').value), 
      isChart = t.find('#isChart').checked; 

     var equationData = { 
      name: name, 
      equation: equation, 
      order: order, 
      isChart: isChart 
     }; 

     var station = Stations.findOne(Session.get('stationNewID')); 
     var sensorId = t.find('#sensorId').value; 

     Meteor.call('insertEquation', station, sensorId, equationData, function (error, result) { 
      if (error) 
       console.log(error); 

     }); 
    } 

回答

2

我覺得還有別的東西不對您的應用程序。您所描述的行爲(具有不同ID的同一類的多種形式)可以在一個乾淨的示例上正確運行。

退房我做了演示說明了這一點:http://meteorpad.com/pad/8CPL2xvS7taeL6jZS/MultipleFormSubmitExample

基本上,形式是這樣的:

<template name="example"> 
    <form id="1" class="yolo"> 
    <input type="submit" value="Submit"> 
    </form> 
    <form id="2" class="yolo"> 
    <input type="submit" value="Submit"> 
    </form> 
    <form id="3" class="yolo"> 
    <input type="submit" value="Submit"> 
    </form> 
</template> 

而且只有一個事件偵聽器:

Template.leaderboard.events({ 
    'submit .yolo': function (e, t) { 
    e.preventDefault(); 

    alert($(e.target).attr('id')); 
    } 
}); 
+0

感謝的人,你的例子解決了我的問題。我只使用target來獲取字段的值,而不是event.target,這種方法適用於單個表單,但不適用於表單列表,因此獲取值的正確方法是$(e.target)。找到( '#名稱')VAL()。 – renatomattos2912