【问题标题】:can't see inserted collection with meteor用流星看不到插入的集合
【发布时间】:2014-08-05 21:02:19
【问题描述】:

我正在使用 jquery mobile 和流星构建数据输入移动调查问卷。

概念很简单:用户在问卷中输入一些信息并使用按钮进行验证(插入)。

我的 HTML 看起来像(questionnaire.html,我使用的语言可能不太重要):

<head>
  <title>Questionnaire</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="jquery.mobile-1.1.1.css" />
  <script src="jquery-1.7.1.min.js"></script>
  <script src="jquery.mobile-1.1.1.js"></script>
</head>

    <body>
      {{> insertion }}

    </body>

    <template name="insertion">
      <div data-role="page" id="foo">

       <div data-role="header">
       <h1>MODULE A : RENSEIGNEMENTS SUR LE REPONDANT </h1>
       </div><!-- /header -->
       <div data-role="content">  
       <legend> IDENTIFICATION DU MENAGE </legend> 
       <input autofocus maxlength="12" required placeholder="Entrez un nombre" name="identifiant"  type="number" />                        
       <p> A1. Nom et prénoms du Chef de Ménage:</p>
       <input name="nom_prenom_CM" type="text" />    
       <p> A2. Adresse : </p>
       <input name="adresse" type="text"/>
       <button type="button" class="submit">Insert and continue</button>
       </div><!-- /content -->
       <div data-role="footer" data-position="fixed">
            <a href="#page_2" data-icon=forward  > Module B: ACTIVITE PRINCIPALE DU MENAGE </a> 
       </div><!-- /footer -->
      </div><!-- /page -->


    </template>

还有 javascript (questionnaire.js),其中 insertion 是我的 template 的名称:

Mydata= new Meteor.Collection('mydata');
if (Meteor.isClient) {
    Template.insertion.events ({
  'click  .submit': function () {
    Mydata.insert({
        identifiant: $('#identifiant').val(),
        nom_prenomCM: $('#nom_prenom_CM').val(),
        adresse: $('#adresse').val()
    }); 
  }
  });
}

if (Meteor.isServer) {
  }

问题是在 Web 控制台中使用 Mydata.find().fetch() 只能看到生成的 id。 什么可能是我的错误。我把应用部署在网上,方便大家查看:http://herimanitra.meteor.com/

【问题讨论】:

    标签: javascript jquery jquery-mobile meteor


    【解决方案1】:

    您的 html 定义中缺少 id:

    $('#identifiant').val(),
    

    此语句查找 id 为“identifiant”的 html 元素。但是在您的 html 中没有定义此 id 的项目。这就是为什么你的 html 应该是这样的:

    <input id="identifiant" autofocus maxlength="12" required placeholder="Entrez un nombre" name="identifiant"  type="number" />
    <input id="adresse" name="adresse" type="text"/>
    <input id="nom_prenom_CM" name="nom_prenom_CM" type="text" />  
    

    另一种解决方案是更改您的选择器。例如,您可以使用他的姓名获取输入字段。

    $('[name=adresse]').val();
    

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多