javascript - 表单提交后显示不在数组中的项目

标签 javascript node.js

我有一个下拉菜单,是从这样的数组生成的(为了简洁起见,在本示例中使用假数据)

    var city = document.getElementById("city");
    locarr = ["1", "2", "3", "4"];
    for(var i=0; i < locarr.length; i++) {
        var opt = locarr[i];
        var el = document.createElement("option");
        el.text = opt;
        el.value = opt;
        city.add(el);
    }

效果很好,它填充了菜单。但是,当我提交表单并重新加载页面时,我想显示初始选定的项目,然后显示数组中除该项目之外的所有其他项目,这样我就不会出现重复的条目。

我的 oldInput.city 值来自 Controller ,该值是在表单提交时发布的值。

在当前状态下,一旦提交表单,我就会有重复的值。

<select class="chosen-select-no-single" name="city" id="city">
    <% if (!oldInput.city) { %>
    <option value="">Select City</option>
    <% } else { %>
    <option value="">Select City</option>
    <option value="<%= oldInput.city %>" selected>
        <%= oldInput.city %>
    </option>
    <% } %>
</select>

最佳答案

只需从 HTML 中删除 oldInput 即可。在 for 子句中,您可以执行以下操作:

for(var i=0; i < locarr.length; i++) {
    var opt = locarr[i];
    var el = document.createElement("option");
    el.text = opt;
    el.value = opt;
    var oldInpt="<%=oldInput%>";
    if (oldInpt!=null && opt ==oldInpt.city){
       el.selected = true;
    }
    city.add(el);
}

关于javascript - 表单提交后显示不在数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54597664/

相关文章:

node.js - 如何访问 OpenShift 通配符 SSL 证书和私钥

javascript - Node.js 模块 : correct way to refer to sibling functions

javascript - Node 不会运行来自 Eloquent Javascript 的示例,v8 会。这是怎么回事?

javascript - E11000重复键错误集合: Inserting document in mongodb

javascript - Node.js Passport 不调用下一个函数

javascript - 未捕获的类型错误 : Cannot read property 'display' of undefined

javascript - Graphiql 返回所有项目而不是特定项目

javascript - 我们可以在 </body> 之前的 IE 条件注释中添加 javascript

javascript - 从数组加载 HTML5 视频播放器

node.js - 如何一次发出 200 个 400k 请求?