【问题标题】:Events from multiple forms on one page in meteor流星中一页上的多种形式的事件
【发布时间】:2015-09-25 05:31:30
【问题描述】:

在我的 home.html 页面中,我有两个表单,它们的设置方式相同。问题是一个有效,另一个无效。我尝试将损坏的表单中的复选框放入工作表单中,然后它开始工作,所以我认为在 JavaScript Template.events 代码中指定表单是一个问题。

html:

<template name="home">
<form> <strong>Display Factors:</strong><br> 
          <label class="display-F1"> <input type="checkbox" checked="{{displayF1}}"> 1: Cumplimiento de los objetivos del programa </label><br>
          <label class="display-F2"> <input type="checkbox" checked="{{displayF2}}"> 2: Estudiantes </label><br>
          <label class="display-F3"> <input type="checkbox" checked="{{displayF3}}"> 3: Profesores </label><br>
          </form>

          <form>
          <label class="display-strengths"> <input type="checkbox" checked="{{displayStrengths}}"> Display Strengths </label>
          <label class="display-insuff"> <input type="checkbox" checked="{{displayInsuff}}"> Display Insufficiencies </label>
          <label class="display-urgencies"> <input type="checkbox" checked="{{displayUrgencies}}"> Display Urgencies </label>
          </form>
</template>

JavaScript:

Template.home.events({
"change .display-strengths input": function (event) {
  Session.set("displayStrengths", event.target.checked);
},
"change .display-insuff input": function (event) {
  Session.set("displayInsuff", event.target.checked);
},
"change .display-urgencies input": function (event) {
  Session.set("displayUrgencies", event.target.checked);
},
"change .display-F1 input": function (event){
    Session.set("displayF1", event.target.checked);
},
"change .display-F2 input": function(event){
    Session.set("displayF2", event.target.checked);
},
"change .display-F3 input": function(event){
    Session.set("displayF3", event.target.checked);
},
});

我还有其他依赖于 Session.get 的代码,但我相当确信问题出在此代码中,因为在控制台中,Session.get('displayStrengths') 在适当的时候返回 true,但 Session.get('displayF1') 总是返回 undefined。

【问题讨论】:

    标签: javascript html forms meteor


    【解决方案1】:

    看来问题不在于您提供的代码。查看我使用您提供的代码制作的演示:

    http://meteorpad.com/pad/rm56RY49Gq7yyfa6D/Leaderboard

    如果您运行它(使用 chrome/firefox/whatever 控制台)并单击每个选项,您应该会看到正确的相应消息“我被称为 X”。您也可以直接在控制台中输入Session.keys,您应该会看到预期的结果。

    【讨论】:

    • 我还在本地安装上测试了代码,一切似乎都运行良好。
    • 仍然不确定为什么它一开始就不起作用,但是将一个表单及其事件处理程序移动到一个单独的模板中是可行的。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多