簡體   English   中英

從ejs檢索JSON值

[英]Retrieve JSON values from ejs

我是node和ejs的新手,我有下面的代碼,並且需要知道如何從EJs文件中獲取值並將其發布到mongoDB

EJS文件

<form>
    <p>
        <label for="username"> Username </label>
        <input type="text" for="username"/>
    </p>
    <p>
        <label for="password"> Password </label>
        <input type="password" for="password" />
    </p>
    <p>
        <label for="email"> Email </label>
        <input type="text" for="email"/>
    </p>
    <button type="submit">Log In</button> 
</form>

JS文件

$('form').on('submit', function(){

      var item = $('form input');
      var user = [{username:item.val()},{password:item.val()},{email:item.val()}];

      console.log(user);

      $.ajax({
        type: 'POST',
        url: '/register',
        data: user,
        success: function(data){
          //do something with the data via front-end framework
            console.log(data);
          location.reload();
        }
      });

      return false;

  });

截至目前,當我插入到mongo DB中時,我得到了一個新的uuid,但其值將變為"0"

請客氣

因此,行var item = $('form input'); 實際上是每個輸入的集合,而var user = [{username:item.val()},{password:item.val()},{email:item.val()}]; 只是獲取第一個的值(這是因為jQuery似乎可以隱藏一個集合),而我會嘗試這樣做(假設您想從該表單中獲取特定的值):

var items = $('form');
var user = {
      username: $('[name=username]', items).val(),
      password: $('[name=password]', items).val(),
      email: $('[name=email]', items).val()
    };

隨着以下更改您的HTML

<form>
    <p>
        <label for="input-username"> Username </label>
        <input type="text" id="input-username" name="username"/>
    </p>
    <p>
        <label for="input-password"> Password </label>
        <input type="password" id="input-password" name="password" />
    </p>
    <p>
        <label for="input-email"> Email </label>
        <input type="text" id="input-email" name="email"/>
    </p>
    <button type="submit">Log In</button> 
</form> 

同樣, <label>元素中的for屬性也要與具有相同id屬性的<input>關聯。 因此,考慮到id應該是唯一的,並且只能解析為單個元素,我建議為它們添加某種名稱間隔,例如input-

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM