如何在 Meteor 中使用多个输入字段和单个更新按钮更新文档

How to update a document in Meteor with multiple input fields and a single update button

本文关键字:更新 字段 输入 单个 按钮 文档 Meteor      更新时间:2023-09-26

我有一个弹出的模式,允许用户更新集合中的一些字段。例如,它将具有客户端地址的多个输入字段(模态只有一个按钮来执行更新):

...
<input type="text" id="full-name-change-modal">
<input type="text" id="address-change-modal">
<input type="text" id="city-change-modal">
<input type="text" id="state-change-modal">
...

因此,如果用户想要更改客户端的全名,则更新将仅包含相应输入不为空的字段。在这种情况下,更新将如下所示:

Collection.update({ _id: documentNameAddress._id}, {$set: {FullName: <name from input> }});

如果用户想要更改地址、城市、州和邮政编码,则需要读取:

Demographic.update({ _id: documentNameAddress._id}, {$set: {Address: <address from input>, City: <city from input>, State: <state from input>, Zip: <zip from input> });

如果可能的话,我宁愿不要为每个字段设置一个单独的按钮。我该怎么做?

最终会得到一个可选的Collection更新,然后您可以根据以下形式的非空字段为Demographic构建更新:

Template.myTemplate.events({
  'click button':function(ev){
    var FullName = $("#full-name-change-modal").val();
    if ( FullName ) Collection.update({ _id: documentNameAddress._id}, {$set: {FullName: FullName }});
    var query = {};
    var Address = $('#address-change-modal').val();
    if ( Address ) query.Address = Address;
    var City = $('#city-change-modal').val();
    if ( City) query.City = City;
    var State = $('#state-change-modal').val();
    if ( State ) query.State = State;
    if ( Object.keys(query).length ) Demographic.update(query);
  }
});