【问题标题】:jQuery Val() not working when trying to pre select dynamic values尝试预先选择动态值时,jQuery Val()不起作用
【发布时间】:2021-01-29 18:37:41
【问题描述】:

在硬编码和默认值字段中,$("#id").val(id) 工作正常,但在这种情况下,我无法进行预选。

编辑:_id 是来自 mongoDb 的 ObjId

ejs

                         <div class="form-group">
                                <label>Hotel</label>
                                <select
                                    id="hotelId"
                                    name="hotelId"
                                    class="select2 form-control"
                                    data-placeholder="Select Hotel"
                                    style="width: 100%"
                                >
                                    <% stays.forEach(stay => { %>
                                    <option value="<%=stay._id%>"><%= stay.name %></option>
                                    <% }) %>
                                </select>
                              </div>

脚本

let hotelId = '<%- JSON.stringify(room.hotelId._id) %>';
$('#hotelId').val(hotelId);

【问题讨论】:

  • How to ask a good question.。本质上,你有一个错误,但你的问题没有显示足够的信息来给出答案。
  • 刚刚解决了这个问题,看起来,为了将其用作值,我们需要先对其进行解析
  • _id 是数字还是字符串,还是复杂的对象?它看起来的方式是,您正在尝试对整数或其他内容进行字符串化,然后引用它。我读它的方式是酒店 id 将是一个 json 字符串。您应该对 _id 是什么给出更多定义
  • @Fallenreaper 你是对的,_id 是 Mongo Db 的 objId。为了更清楚,我会更新问题

标签: jquery node.js ejs


【解决方案1】:

通过解析解决了问题,可能是因为它是一个objId

 $('#hotelId').val(JSON.parse(hotelId));

【讨论】:

  • 很大一部分错误是由编码人员对问题发生时的影响条件的假设引起的。我不确定,但我认为这也可能与年龄成反比。当您遇到此类问题时,最佳方法是在采取任何其他操作之前确认您的假设 - 在这种情况下,“实际”hotelId 值与选择中的选项之一匹配。会在浏览器中单独使用 F12 并检查有问题的页面元素。
  • 是的,已经使用了调试器,它显示了 ID 而没有解析它。如果您知道为什么会出现这种行为,请告诉我。
猜你喜欢
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多