2017-08-11 10 views
0

コンポーネントに在庫があるかどうか(チェックボックスがチェックされているかどうか)、または在庫(この場合、前と同じチェックボックスはチェックされていません)。ノードJsサーバのチェックボックスの状態を取得

ここでは、フォームの:

<form action="/inventory/<%=ingredient._id%>?_method=PUT" method="POST" class="form"> 
     <!-- <form class="formNew form" action="/inventory/<%=ingredient._id%>" method="POST" > --> 
      <div class="form-group"> 
       <label>Ingredient's picture:</label> 
       <input type="text" name="item[photoName]" value="<%=ingredient.photoName%>" class="form-control"> 
      </div> 
      <div class="form-group"> 
      <label>Name:</label> 
       <input type="text" name="item[name]" value="<%=ingredient.name%>" class="form-control"> 
      </div> 
      <div class="form-group"> 
      <label>Number of items:</label> 
      <input type="number" name="item[number]" value="<%=ingredient.number%>" class="form-control" min="0"> 
      </div> 
      <div class="form-group"> 
      <div class="text-center"><label>Or check ingredient item:</label></div> 

      <%if(ingredient.exist){%> 
       <input class="form-control" type="checkbox" name="item[checkbox]" checked> 
      <% } else { %> 
        <input class="form-control" type="checkbox" name="item[checkbox]" unchecked> 
      <% } %> 

      </div>       
      <button class="text-center btn btn-success pull-right" type="submit">Save changes</button> 
     </form> 

そして、ここで更新を扱う私のポストルート(ノードのJs)があります:

//更新ルート

app.put("/inventory/:id", function(req, res){ 
function(err, updatedIngredient){ 

     var ingredientUpdated={ 
      photoName:req.body.item["photoName"], 
      name:req.body.item["name"], 
      number:req.body.item["number"], 
      exist:req.body.item["checkbox"].checked   
     } 

     Ingredient.findByIdAndUpdate(req.params.id, ingredientUpdated, {new: true}, function(err, updatedIngredient){ 
     if(err){ 
      console.log(err); 
     } else {    
      console.log(updatedIngredient); 

      if(req.xhr){ 
       res.json(updatedIngredient); 
      } else { 
       req.flash("success", "You successfully updated the Ingredient's info"); 
       res.redirect("/inventory/" + req.params.id);  
      }   
     } 
    }) 
}) 

そして最後に、ここに私の成分のですスキーマモデル(mongoDb/mongoose):

var IngredientSchema = new mongoose.Schema({ 
    name:String, 
    number:Number, 
    exist:Boolean, 

    author:{ 
    id:{ 
     type:mongoose.Schema.Types.ObjectId, 
     ref:'User' 
    }, 

    username:String 
    }, 

    photoName:String 
}) 

しかし、私の実装はうまくいかず、次のようなエラーが表示されます: "未定義のプロパティが 'チェックされていません'

これを修正する方法は誰にも分かりますか?

答えて

0

偶然、解決策が見つかりました。私は "exist:req.body.item [" checkbox "]を" existing "と置き換えました:req.body.item [" checkbox "]"。 .checkedを削除しました。

関連する問題