用流星看不到插入的集合

时间:2014-08-05 12:47:38

标签: javascript jquery jquery-mobile meteor

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

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

我的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/

1 个答案:

答案 0 :(得分:0)

你错过了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();

迎接