Javascript 如何在EJS中填充编辑路由的复选框?

Javascript 如何在EJS中填充编辑路由的复选框?,javascript,node.js,ejs,Javascript,Node.js,Ejs,我正在做我的第一个项目作为一个新手-只是一个简单的内容/财产清单应用程序 我从表单中获取用户数据并将其显示在显示表单上。我有一个复选框部分和一个单选按钮部分——我使用body解析器将这些部分的值提取到数组中。但是,在编辑页面上,我无法获取复选框以预先填充指定的值 <div class="form-control" id="propertyRoomsForm"> <div class="form-check-inline"> <input ty

我正在做我的第一个项目作为一个新手-只是一个简单的内容/财产清单应用程序

我从表单中获取用户数据并将其显示在显示表单上。我有一个复选框部分和一个单选按钮部分——我使用body解析器将这些部分的值提取到数组中。但是,在编辑页面上,我无法获取复选框以预先填充指定的值

<div class="form-control" id="propertyRoomsForm">
    <div class="form-check-inline">
        <input type="checkbox" id="livingroom" class="form-check-input" name="propertyRooms[]" value="living room">
        <label for="livingroom" class="form-check-label"> living room</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="kitchen" class="form-check-input" name="propertyRooms[]" value="kitchen">
        <label for="kitchen" class="form-check-label"> kitchen</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="diningroom" class="form-check-input" name="propertyRooms[]" value="dining room">
        <label for="diningroom" class="form-check-label"> dining room</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="hall" class="form-check-input" name="propertyRooms[]" value="hall">
        <label for="hall" class="form-check-label"> hall</label>
    </div>
</div>

我想,在“新财产”表格上,我还需要做一些更进一步的事情,但我缺少了一个明显的技巧。我想象与onClick()有关,但我想不出该怎么做。或者我是否需要使用EJB向编辑表单中添加一些内容来填充数据?

如果您为EJB提供属性对象,那么如果输入值在propertyRoom数组中,您可以有条件地使用选中的HTML属性来选中复选框。它应该是这样的:

<div class="form-control" id="propertyRoomsForm">
    <div class="form-check-inline">
        <input type="checkbox" id="livingroom" class="form-check-input" name="propertyRooms[]" value="living room" <%= property.propertyRooms.includes("living room") ? "checked" : "" %>>
        <label for="livingroom" class="form-check-label"> living room</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="kitchen" class="form-check-input" name="propertyRooms[]" value="kitchen" <%= property.propertyRooms.includes("kitchen") ? "checked" : "" %>>
        <label for="kitchen" class="form-check-label"> kitchen</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="diningroom" class="form-check-input" name="propertyRooms[]" value="dining room" <%= property.propertyRooms.includes("dining room") ? "checked" : "" %>>
        <label for="diningroom" class="form-check-label"> dining room</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="hall" class="form-check-input" name="propertyRooms[]" value="hall" <%= property.propertyRooms.includes("hall") ? "checked" : "" %>>
        <label for="hall" class="form-check-label"> hall</label>
    </div>
</div>

客厅
厨房
餐厅
大厅

强制性免责声明:我尚未测试此代码,因此可能需要进行一些修补,但您明白了。

您的ejs文件提供了哪些服务?您可能需要向它提供数据,或者有一种请求数据的方法。我正在传递“属性”,其中包含从我的routes文件的表单中收集的所有数据。那么,我下面的回答应该足以解决您的问题。我花了一分钟时间让它工作!改为。谢谢哦,是的,对不起,你是对的,我确实忘记了=。我可以发誓我把它放在那里了。我将为后代确定我的答案。如果你想把它标为答案或投赞成票:D
<div class="form-control" id="propertyRoomsForm">
    <div class="form-check-inline">
        <input type="checkbox" id="livingroom" class="form-check-input" name="propertyRooms[]" value="living room" <%= property.propertyRooms.includes("living room") ? "checked" : "" %>>
        <label for="livingroom" class="form-check-label"> living room</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="kitchen" class="form-check-input" name="propertyRooms[]" value="kitchen" <%= property.propertyRooms.includes("kitchen") ? "checked" : "" %>>
        <label for="kitchen" class="form-check-label"> kitchen</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="diningroom" class="form-check-input" name="propertyRooms[]" value="dining room" <%= property.propertyRooms.includes("dining room") ? "checked" : "" %>>
        <label for="diningroom" class="form-check-label"> dining room</label>
    </div>
    <div class="form-check-inline">
        <input type="checkbox" id="hall" class="form-check-input" name="propertyRooms[]" value="hall" <%= property.propertyRooms.includes("hall") ? "checked" : "" %>>
        <label for="hall" class="form-check-label"> hall</label>
    </div>
</div>